diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
index 8a84705d965a4d083b96da5eec0d29aef858b4d7..88b6289e5c7049e2addd5fc8f6a08eaf85f0dcc1 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/META-INF/services/org.eclipse.xtext.ISetup
@@ -1 +1 @@
-de.fhmuenster.masterthesis.ide.TestgeneratorDSLIdeSetup
+de.fhmuenster.masterthesis.ide.TestgeneratorDSLIdeSetup
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/AbstractTestgeneratorDSLIdeModule.java b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/AbstractTestgeneratorDSLIdeModule.java
index e5002527b209d0c5094d2134bbefea4ab4cbc1c5..ff14685c9f9df9141c4cd8d4ac9401e30eb29139 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/AbstractTestgeneratorDSLIdeModule.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/AbstractTestgeneratorDSLIdeModule.java
@@ -1,3 +1,65 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.ide;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+import de.fhmuenster.masterthesis.ide.contentassist.antlr.TestgeneratorDSLParser;
+import de.fhmuenster.masterthesis.ide.contentassist.antlr.internal.InternalTestgeneratorDSLLexer;
+import org.eclipse.xtext.ide.DefaultIdeModule;
+import org.eclipse.xtext.ide.LexerIdeBindings;
+import org.eclipse.xtext.ide.editor.contentassist.FQNPrefixMatcher;
+import org.eclipse.xtext.ide.editor.contentassist.IPrefixMatcher;
+import org.eclipse.xtext.ide.editor.contentassist.IProposalConflictHelper;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AntlrProposalConflictHelper;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer;
+import org.eclipse.xtext.ide.refactoring.IRenameStrategy2;
+import org.eclipse.xtext.ide.server.rename.IRenameService2;
+import org.eclipse.xtext.ide.server.rename.RenameService2;
+
+/**
+ * Manual modifications go to {@link TestgeneratorDSLIdeModule}.
+ */
+@SuppressWarnings("all")
+public abstract class AbstractTestgeneratorDSLIdeModule extends DefaultIdeModule {
+
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public void configureContentAssistLexer(Binder binder) {
+		binder.bind(Lexer.class)
+			.annotatedWith(Names.named(LexerIdeBindings.CONTENT_ASSIST))
+			.to(InternalTestgeneratorDSLLexer.class);
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IContentAssistParser> bindIContentAssistParser() {
+		return TestgeneratorDSLParser.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment2
+	public Class<? extends IProposalConflictHelper> bindIProposalConflictHelper() {
+		return AntlrProposalConflictHelper.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.exporting.QualifiedNamesFragment2
+	public Class<? extends IPrefixMatcher> bindIPrefixMatcher() {
+		return FQNPrefixMatcher.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public Class<? extends IRenameService2> bindIRenameService2() {
+		return RenameService2.class;
+	}
+	
+	// contributed by org.eclipse.xtext.xtext.generator.ui.refactoring.RefactorElementNameFragment2
+	public Class<? extends IRenameStrategy2> bindIRenameStrategy2() {
+		return IRenameStrategy2.DefaultImpl.class;
+	}
+	
+}
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -58,3 +120,4 @@ public abstract class AbstractTestgeneratorDSLIdeModule extends DefaultIdeModule
 	}
 	
 }
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/PartialTestgeneratorDSLContentAssistParser.java b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/PartialTestgeneratorDSLContentAssistParser.java
index f3a3f912160fcf20c723b8be5dc1b00b30251e3a..141f064bcdaee9d2cb2df25eb8a06f0f81c0275e 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/PartialTestgeneratorDSLContentAssistParser.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/PartialTestgeneratorDSLContentAssistParser.java
@@ -1,3 +1,38 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.ide.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+public class PartialTestgeneratorDSLContentAssistParser extends TestgeneratorDSLParser {
+
+	private AbstractRule rule;
+
+	@Override
+	public void initializeFor(AbstractRule rule) {
+		this.rule = rule;
+	}
+
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		if (rule == null || rule.eIsProxy())
+			return Collections.emptyList();
+		String methodName = "entryRule" + rule.getName();
+		PolymorphicDispatcher<Collection<FollowElement>> dispatcher = 
+			new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+		dispatcher.invoke();
+		return parser.getFollowElements();
+	}
+
+}
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -31,3 +66,4 @@ public class PartialTestgeneratorDSLContentAssistParser extends TestgeneratorDSL
 	}
 
 }
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/TestgeneratorDSLParser.java b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/TestgeneratorDSLParser.java
index f50f199ca62e4a634c8d7656b122d4624c274980..f71a5ca1e2426f62d82005ffd19d2e8601d47be1 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/TestgeneratorDSLParser.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/TestgeneratorDSLParser.java
@@ -1,3 +1,290 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.ide.contentassist.antlr;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import de.fhmuenster.masterthesis.ide.contentassist.antlr.internal.InternalTestgeneratorDSLParser;
+import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess;
+import java.util.Map;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.AbstractContentAssistParser;
+
+public class TestgeneratorDSLParser extends AbstractContentAssistParser {
+
+	@Singleton
+	public static final class NameMappings {
+		
+		private final Map<AbstractElement, String> mappings;
+		
+		@Inject
+		public NameMappings(TestgeneratorDSLGrammarAccess grammarAccess) {
+			ImmutableMap.Builder<AbstractElement, String> builder = ImmutableMap.builder();
+			init(builder, grammarAccess);
+			this.mappings = builder.build();
+		}
+		
+		public String getRuleName(AbstractElement element) {
+			return mappings.get(element);
+		}
+		
+		private static void init(ImmutableMap.Builder<AbstractElement, String> builder, TestgeneratorDSLGrammarAccess grammarAccess) {
+			builder.put(grammarAccess.getDeclarationAccess().getAlternatives(), "rule__Declaration__Alternatives");
+			builder.put(grammarAccess.getFlowElementAccess().getAlternatives(), "rule__FlowElement__Alternatives");
+			builder.put(grammarAccess.getServiceTaskFlowElementAccess().getAlternatives(), "rule__ServiceTaskFlowElement__Alternatives");
+			builder.put(grammarAccess.getVariableAccess().getAlternatives(), "rule__Variable__Alternatives");
+			builder.put(grammarAccess.getVariableDeclarationAccess().getAlternatives(), "rule__VariableDeclaration__Alternatives");
+			builder.put(grammarAccess.getEndCheckAccess().getAlternatives(), "rule__EndCheck__Alternatives");
+			builder.put(grammarAccess.getVariableEqualsAccess().getAlternatives(), "rule__VariableEquals__Alternatives");
+			builder.put(grammarAccess.getVariableNotEqualsAccess().getAlternatives(), "rule__VariableNotEquals__Alternatives");
+			builder.put(grammarAccess.getMockAccess().getAlternatives(), "rule__Mock__Alternatives");
+			builder.put(grammarAccess.getCompareAccess().getAlternatives(), "rule__Compare__Alternatives");
+			builder.put(grammarAccess.getBooleanAccess().getAlternatives(), "rule__Boolean__Alternatives");
+			builder.put(grammarAccess.getStringCompareSymbolAccess().getAlternatives(), "rule__StringCompareSymbol__Alternatives");
+			builder.put(grammarAccess.getIntCompareSymbolAccess().getAlternatives(), "rule__IntCompareSymbol__Alternatives");
+			builder.put(grammarAccess.getBooleanCompareSymbolAccess().getAlternatives(), "rule__BooleanCompareSymbol__Alternatives");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getGroup(), "rule__BPMNDiagram__Group__0");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getGroup_11(), "rule__BPMNDiagram__Group_11__0");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getGroup_11_4(), "rule__BPMNDiagram__Group_11_4__0");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getGroup_11_4_1(), "rule__BPMNDiagram__Group_11_4_1__0");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getGroup_12(), "rule__BPMNDiagram__Group_12__0");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getGroup_12_4(), "rule__BPMNDiagram__Group_12_4__0");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getGroup_12_4_1(), "rule__BPMNDiagram__Group_12_4_1__0");
+			builder.put(grammarAccess.getStartFlowElementAccess().getGroup(), "rule__StartFlowElement__Group__0");
+			builder.put(grammarAccess.getStartFlowElementAccess().getGroup_4(), "rule__StartFlowElement__Group_4__0");
+			builder.put(grammarAccess.getStartFlowElementAccess().getGroup_4_4(), "rule__StartFlowElement__Group_4_4__0");
+			builder.put(grammarAccess.getStartFlowElementAccess().getGroup_4_4_1(), "rule__StartFlowElement__Group_4_4_1__0");
+			builder.put(grammarAccess.getEndFlowElementAccess().getGroup(), "rule__EndFlowElement__Group__0");
+			builder.put(grammarAccess.getUserTaskFlowElementAccess().getGroup(), "rule__UserTaskFlowElement__Group__0");
+			builder.put(grammarAccess.getUserTaskFlowElementAccess().getGroup_4(), "rule__UserTaskFlowElement__Group_4__0");
+			builder.put(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4(), "rule__UserTaskFlowElement__Group_4_4__0");
+			builder.put(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4_1(), "rule__UserTaskFlowElement__Group_4_4_1__0");
+			builder.put(grammarAccess.getManualTaskFlowElementAccess().getGroup(), "rule__ManualTaskFlowElement__Group__0");
+			builder.put(grammarAccess.getScriptTaskFlowElementAccess().getGroup(), "rule__ScriptTaskFlowElement__Group__0");
+			builder.put(grammarAccess.getDelegateServiceTaskFlowElementAccess().getGroup(), "rule__DelegateServiceTaskFlowElement__Group__0");
+			builder.put(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup(), "rule__ExternalServiceTaskFlowElement__Group__0");
+			builder.put(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8(), "rule__ExternalServiceTaskFlowElement__Group_8__0");
+			builder.put(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5(), "rule__ExternalServiceTaskFlowElement__Group_8_5__0");
+			builder.put(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5_1(), "rule__ExternalServiceTaskFlowElement__Group_8_5_1__0");
+			builder.put(grammarAccess.getBusinessRuleTaskFlowElementAccess().getGroup(), "rule__BusinessRuleTaskFlowElement__Group__0");
+			builder.put(grammarAccess.getGatewayFlowElementAccess().getGroup(), "rule__GatewayFlowElement__Group__0");
+			builder.put(grammarAccess.getSequenceFlowElementAccess().getGroup(), "rule__SequenceFlowElement__Group__0");
+			builder.put(grammarAccess.getSequenceFlowElementAccess().getGroup_4(), "rule__SequenceFlowElement__Group_4__0");
+			builder.put(grammarAccess.getExternalTopicAccess().getGroup(), "rule__ExternalTopic__Group__0");
+			builder.put(grammarAccess.getStringVariableAccess().getGroup(), "rule__StringVariable__Group__0");
+			builder.put(grammarAccess.getStringVariableAccess().getGroup_6(), "rule__StringVariable__Group_6__0");
+			builder.put(grammarAccess.getStringVariableAccess().getGroup_6_1(), "rule__StringVariable__Group_6_1__0");
+			builder.put(grammarAccess.getIntVariableAccess().getGroup(), "rule__IntVariable__Group__0");
+			builder.put(grammarAccess.getIntVariableAccess().getGroup_6(), "rule__IntVariable__Group_6__0");
+			builder.put(grammarAccess.getIntVariableAccess().getGroup_6_1(), "rule__IntVariable__Group_6_1__0");
+			builder.put(grammarAccess.getBooleanVariableAccess().getGroup(), "rule__BooleanVariable__Group__0");
+			builder.put(grammarAccess.getBooleanVariableAccess().getGroup_6(), "rule__BooleanVariable__Group_6__0");
+			builder.put(grammarAccess.getBooleanVariableAccess().getGroup_6_1(), "rule__BooleanVariable__Group_6_1__0");
+			builder.put(grammarAccess.getLoopAccess().getGroup(), "rule__Loop__Group__0");
+			builder.put(grammarAccess.getLoopAccess().getGroup_17(), "rule__Loop__Group_17__0");
+			builder.put(grammarAccess.getLoopAccess().getGroup_17_1(), "rule__Loop__Group_17_1__0");
+			builder.put(grammarAccess.getFlowAccess().getGroup(), "rule__Flow__Group__0");
+			builder.put(grammarAccess.getFlowAccess().getGroup_8(), "rule__Flow__Group_8__0");
+			builder.put(grammarAccess.getFlowAccess().getGroup_8_1(), "rule__Flow__Group_8_1__0");
+			builder.put(grammarAccess.getFlowAccess().getGroup_10(), "rule__Flow__Group_10__0");
+			builder.put(grammarAccess.getFlowAccess().getGroup_10_4(), "rule__Flow__Group_10_4__0");
+			builder.put(grammarAccess.getFlowAccess().getGroup_10_4_1(), "rule__Flow__Group_10_4_1__0");
+			builder.put(grammarAccess.getTestAccess().getGroup(), "rule__Test__Group__0");
+			builder.put(grammarAccess.getTestAccess().getGroup_4(), "rule__Test__Group_4__0");
+			builder.put(grammarAccess.getTestAccess().getGroup_5(), "rule__Test__Group_5__0");
+			builder.put(grammarAccess.getTestAccess().getGroup_5_1(), "rule__Test__Group_5_1__0");
+			builder.put(grammarAccess.getTestAccess().getGroup_7(), "rule__Test__Group_7__0");
+			builder.put(grammarAccess.getTestAccess().getGroup_7_4(), "rule__Test__Group_7_4__0");
+			builder.put(grammarAccess.getTestAccess().getGroup_7_4_1(), "rule__Test__Group_7_4_1__0");
+			builder.put(grammarAccess.getVariableDeclarationsAccess().getGroup(), "rule__VariableDeclarations__Group__0");
+			builder.put(grammarAccess.getVariableDeclarationsAccess().getGroup_6(), "rule__VariableDeclarations__Group_6__0");
+			builder.put(grammarAccess.getVariableDeclarationsAccess().getGroup_6_1(), "rule__VariableDeclarations__Group_6_1__0");
+			builder.put(grammarAccess.getEndChecksAccess().getGroup(), "rule__EndChecks__Group__0");
+			builder.put(grammarAccess.getEndChecksAccess().getGroup_4(), "rule__EndChecks__Group_4__0");
+			builder.put(grammarAccess.getEndChecksAccess().getGroup_4_1(), "rule__EndChecks__Group_4_1__0");
+			builder.put(grammarAccess.getStringVariableDeclarationAccess().getGroup(), "rule__StringVariableDeclaration__Group__0");
+			builder.put(grammarAccess.getIntVariableDeclarationAccess().getGroup(), "rule__IntVariableDeclaration__Group__0");
+			builder.put(grammarAccess.getBooleanVariableDeclarationAccess().getGroup(), "rule__BooleanVariableDeclaration__Group__0");
+			builder.put(grammarAccess.getStringVariableEqualsAccess().getGroup(), "rule__StringVariableEquals__Group__0");
+			builder.put(grammarAccess.getIntVariableEqualsAccess().getGroup(), "rule__IntVariableEquals__Group__0");
+			builder.put(grammarAccess.getBooleanVariableEqualsAccess().getGroup(), "rule__BooleanVariableEquals__Group__0");
+			builder.put(grammarAccess.getStringVariableNotEqualsAccess().getGroup(), "rule__StringVariableNotEquals__Group__0");
+			builder.put(grammarAccess.getIntVariableNotEqualsAccess().getGroup(), "rule__IntVariableNotEquals__Group__0");
+			builder.put(grammarAccess.getBooleanVariableNotEqualsAccess().getGroup(), "rule__BooleanVariableNotEquals__Group__0");
+			builder.put(grammarAccess.getExternalServiceMockAccess().getGroup(), "rule__ExternalServiceMock__Group__0");
+			builder.put(grammarAccess.getExternalServiceMockAccess().getGroup_5(), "rule__ExternalServiceMock__Group_5__0");
+			builder.put(grammarAccess.getExternalServiceMockAccess().getGroup_5_1(), "rule__ExternalServiceMock__Group_5_1__0");
+			builder.put(grammarAccess.getDelegateMockAccess().getGroup(), "rule__DelegateMock__Group__0");
+			builder.put(grammarAccess.getDelegateMockAccess().getGroup_7(), "rule__DelegateMock__Group_7__0");
+			builder.put(grammarAccess.getDelegateMockAccess().getGroup_7_1(), "rule__DelegateMock__Group_7_1__0");
+			builder.put(grammarAccess.getMockingRuleAccess().getGroup(), "rule__MockingRule__Group__0");
+			builder.put(grammarAccess.getMockingRuleAccess().getGroup_5(), "rule__MockingRule__Group_5__0");
+			builder.put(grammarAccess.getMockingRuleAccess().getGroup_5_1(), "rule__MockingRule__Group_5_1__0");
+			builder.put(grammarAccess.getMockingRuleAccess().getGroup_9(), "rule__MockingRule__Group_9__0");
+			builder.put(grammarAccess.getMockingRuleAccess().getGroup_9_1(), "rule__MockingRule__Group_9_1__0");
+			builder.put(grammarAccess.getManualMockAccess().getGroup(), "rule__ManualMock__Group__0");
+			builder.put(grammarAccess.getStringCompareAccess().getGroup(), "rule__StringCompare__Group__0");
+			builder.put(grammarAccess.getIntCompareAccess().getGroup(), "rule__IntCompare__Group__0");
+			builder.put(grammarAccess.getBooleanCompareAccess().getGroup(), "rule__BooleanCompare__Group__0");
+			builder.put(grammarAccess.getModelAccess().getDeclarationsAssignment(), "rule__Model__DeclarationsAssignment");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getNameAssignment_1(), "rule__BPMNDiagram__NameAssignment_1");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getTestpackageAssignment_4(), "rule__BPMNDiagram__TestpackageAssignment_4");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getBpmnAssignment_7(), "rule__BPMNDiagram__BpmnAssignment_7");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getKeyAssignment_10(), "rule__BPMNDiagram__KeyAssignment_10");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_0(), "rule__BPMNDiagram__DmnAssignment_11_4_0");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_1_1(), "rule__BPMNDiagram__DmnAssignment_11_4_1_1");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_0(), "rule__BPMNDiagram__EmbeddedAssignment_12_4_0");
+			builder.put(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_1_1(), "rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1");
+			builder.put(grammarAccess.getBPMNReferenceAccess().getRefAssignment(), "rule__BPMNReference__RefAssignment");
+			builder.put(grammarAccess.getStartFlowElementAccess().getNameAssignment_1(), "rule__StartFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_0(), "rule__StartFlowElement__InputVariablesAssignment_4_4_0");
+			builder.put(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_1_1(), "rule__StartFlowElement__InputVariablesAssignment_4_4_1_1");
+			builder.put(grammarAccess.getEndFlowElementAccess().getNameAssignment_1(), "rule__EndFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getUserTaskFlowElementAccess().getNameAssignment_1(), "rule__UserTaskFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_0(), "rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0");
+			builder.put(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_1_1(), "rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1");
+			builder.put(grammarAccess.getManualTaskFlowElementAccess().getNameAssignment_1(), "rule__ManualTaskFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getScriptTaskFlowElementAccess().getNameAssignment_1(), "rule__ScriptTaskFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameAssignment_1(), "rule__DelegateServiceTaskFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateAssignment_7(), "rule__DelegateServiceTaskFlowElement__DelegateAssignment_7");
+			builder.put(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameAssignment_1(), "rule__ExternalServiceTaskFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicAssignment_7(), "rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7");
+			builder.put(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_0(), "rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0");
+			builder.put(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_1_1(), "rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1");
+			builder.put(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameAssignment_1(), "rule__BusinessRuleTaskFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getGatewayFlowElementAccess().getNameAssignment_1(), "rule__GatewayFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getSequenceFlowElementAccess().getNameAssignment_1(), "rule__SequenceFlowElement__NameAssignment_1");
+			builder.put(grammarAccess.getSequenceFlowElementAccess().getExpressionAssignment_4_3(), "rule__SequenceFlowElement__ExpressionAssignment_4_3");
+			builder.put(grammarAccess.getFlowElementReferenceAccess().getRefAssignment(), "rule__FlowElementReference__RefAssignment");
+			builder.put(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefAssignment(), "rule__DelegateServiceTaskReference__RefAssignment");
+			builder.put(grammarAccess.getExternalTopicAccess().getNameAssignment_1(), "rule__ExternalTopic__NameAssignment_1");
+			builder.put(grammarAccess.getExternalTopicReferenceAccess().getRefAssignment(), "rule__ExternalTopicReference__RefAssignment");
+			builder.put(grammarAccess.getVariableReferenceAccess().getRefAssignment(), "rule__VariableReference__RefAssignment");
+			builder.put(grammarAccess.getStringVariableAccess().getNameAssignment_1(), "rule__StringVariable__NameAssignment_1");
+			builder.put(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_0(), "rule__StringVariable__ProposalsAssignment_6_0");
+			builder.put(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_1_1(), "rule__StringVariable__ProposalsAssignment_6_1_1");
+			builder.put(grammarAccess.getIntVariableAccess().getNameAssignment_1(), "rule__IntVariable__NameAssignment_1");
+			builder.put(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_0(), "rule__IntVariable__ProposalsAssignment_6_0");
+			builder.put(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_1_1(), "rule__IntVariable__ProposalsAssignment_6_1_1");
+			builder.put(grammarAccess.getBooleanVariableAccess().getNameAssignment_1(), "rule__BooleanVariable__NameAssignment_1");
+			builder.put(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_0(), "rule__BooleanVariable__ProposalsAssignment_6_0");
+			builder.put(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_1_1(), "rule__BooleanVariable__ProposalsAssignment_6_1_1");
+			builder.put(grammarAccess.getLoopAccess().getNameAssignment_1(), "rule__Loop__NameAssignment_1");
+			builder.put(grammarAccess.getLoopAccess().getStartAssignment_4(), "rule__Loop__StartAssignment_4");
+			builder.put(grammarAccess.getLoopAccess().getFollowerAssignment_7(), "rule__Loop__FollowerAssignment_7");
+			builder.put(grammarAccess.getLoopAccess().getEndAssignment_10(), "rule__Loop__EndAssignment_10");
+			builder.put(grammarAccess.getLoopAccess().getComplexityAssignment_13(), "rule__Loop__ComplexityAssignment_13");
+			builder.put(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_0(), "rule__Loop__FrequenciesAssignment_17_0");
+			builder.put(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_1_1(), "rule__Loop__FrequenciesAssignment_17_1_1");
+			builder.put(grammarAccess.getFlowAccess().getNameAssignment_1(), "rule__Flow__NameAssignment_1");
+			builder.put(grammarAccess.getFlowAccess().getBpmnReferenceAssignment_3(), "rule__Flow__BpmnReferenceAssignment_3");
+			builder.put(grammarAccess.getFlowAccess().getInclElementsAssignment_8_0(), "rule__Flow__InclElementsAssignment_8_0");
+			builder.put(grammarAccess.getFlowAccess().getInclElementsAssignment_8_1_1(), "rule__Flow__InclElementsAssignment_8_1_1");
+			builder.put(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_0(), "rule__Flow__ExclElementsAssignment_10_4_0");
+			builder.put(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_1_1(), "rule__Flow__ExclElementsAssignment_10_4_1_1");
+			builder.put(grammarAccess.getFlowReferenceAccess().getRefAssignment(), "rule__FlowReference__RefAssignment");
+			builder.put(grammarAccess.getTestAccess().getNameAssignment_1(), "rule__Test__NameAssignment_1");
+			builder.put(grammarAccess.getTestAccess().getFlowReferenceAssignment_3(), "rule__Test__FlowReferenceAssignment_3");
+			builder.put(grammarAccess.getTestAccess().getPriorityAssignment_4_2(), "rule__Test__PriorityAssignment_4_2");
+			builder.put(grammarAccess.getTestAccess().getDeclarationsAssignment_5_0(), "rule__Test__DeclarationsAssignment_5_0");
+			builder.put(grammarAccess.getTestAccess().getDeclarationsAssignment_5_1_1(), "rule__Test__DeclarationsAssignment_5_1_1");
+			builder.put(grammarAccess.getTestAccess().getEndCheckAssignment_6(), "rule__Test__EndCheckAssignment_6");
+			builder.put(grammarAccess.getTestAccess().getMocksAssignment_7_4_0(), "rule__Test__MocksAssignment_7_4_0");
+			builder.put(grammarAccess.getTestAccess().getMocksAssignment_7_4_1_1(), "rule__Test__MocksAssignment_7_4_1_1");
+			builder.put(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceAssignment_3(), "rule__VariableDeclarations__TaskReferenceAssignment_3");
+			builder.put(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_0(), "rule__VariableDeclarations__VariablesAssignment_6_0");
+			builder.put(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_1_1(), "rule__VariableDeclarations__VariablesAssignment_6_1_1");
+			builder.put(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_0(), "rule__EndChecks__EndChecksAssignment_4_0");
+			builder.put(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_1_1(), "rule__EndChecks__EndChecksAssignment_4_1_1");
+			builder.put(grammarAccess.getStringVariableDeclarationAccess().getKeyAssignment_0(), "rule__StringVariableDeclaration__KeyAssignment_0");
+			builder.put(grammarAccess.getStringVariableDeclarationAccess().getValueAssignment_2(), "rule__StringVariableDeclaration__ValueAssignment_2");
+			builder.put(grammarAccess.getIntVariableDeclarationAccess().getKeyAssignment_0(), "rule__IntVariableDeclaration__KeyAssignment_0");
+			builder.put(grammarAccess.getIntVariableDeclarationAccess().getValueAssignment_2(), "rule__IntVariableDeclaration__ValueAssignment_2");
+			builder.put(grammarAccess.getBooleanVariableDeclarationAccess().getKeyAssignment_0(), "rule__BooleanVariableDeclaration__KeyAssignment_0");
+			builder.put(grammarAccess.getBooleanVariableDeclarationAccess().getValueAssignment_2(), "rule__BooleanVariableDeclaration__ValueAssignment_2");
+			builder.put(grammarAccess.getStringVariableEqualsAccess().getKeyAssignment_0(), "rule__StringVariableEquals__KeyAssignment_0");
+			builder.put(grammarAccess.getStringVariableEqualsAccess().getValueAssignment_2(), "rule__StringVariableEquals__ValueAssignment_2");
+			builder.put(grammarAccess.getIntVariableEqualsAccess().getKeyAssignment_0(), "rule__IntVariableEquals__KeyAssignment_0");
+			builder.put(grammarAccess.getIntVariableEqualsAccess().getValueAssignment_2(), "rule__IntVariableEquals__ValueAssignment_2");
+			builder.put(grammarAccess.getBooleanVariableEqualsAccess().getKeyAssignment_0(), "rule__BooleanVariableEquals__KeyAssignment_0");
+			builder.put(grammarAccess.getBooleanVariableEqualsAccess().getValueAssignment_2(), "rule__BooleanVariableEquals__ValueAssignment_2");
+			builder.put(grammarAccess.getStringVariableNotEqualsAccess().getKeyAssignment_0(), "rule__StringVariableNotEquals__KeyAssignment_0");
+			builder.put(grammarAccess.getStringVariableNotEqualsAccess().getValueAssignment_2(), "rule__StringVariableNotEquals__ValueAssignment_2");
+			builder.put(grammarAccess.getIntVariableNotEqualsAccess().getKeyAssignment_0(), "rule__IntVariableNotEquals__KeyAssignment_0");
+			builder.put(grammarAccess.getIntVariableNotEqualsAccess().getValueAssignment_2(), "rule__IntVariableNotEquals__ValueAssignment_2");
+			builder.put(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyAssignment_0(), "rule__BooleanVariableNotEquals__KeyAssignment_0");
+			builder.put(grammarAccess.getBooleanVariableNotEqualsAccess().getValueAssignment_2(), "rule__BooleanVariableNotEquals__ValueAssignment_2");
+			builder.put(grammarAccess.getMockReferenceAccess().getRefAssignment(), "rule__MockReference__RefAssignment");
+			builder.put(grammarAccess.getExternalServiceMockAccess().getNameAssignment_1(), "rule__ExternalServiceMock__NameAssignment_1");
+			builder.put(grammarAccess.getExternalServiceMockAccess().getExternalTopicAssignment_4(), "rule__ExternalServiceMock__ExternalTopicAssignment_4");
+			builder.put(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_0(), "rule__ExternalServiceMock__MockingRulesAssignment_5_0");
+			builder.put(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_1_1(), "rule__ExternalServiceMock__MockingRulesAssignment_5_1_1");
+			builder.put(grammarAccess.getDelegateMockAccess().getNameAssignment_1(), "rule__DelegateMock__NameAssignment_1");
+			builder.put(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceAssignment_3(), "rule__DelegateMock__ServiceTaskReferenceAssignment_3");
+			builder.put(grammarAccess.getDelegateMockAccess().getDelegateClassAssignment_6(), "rule__DelegateMock__DelegateClassAssignment_6");
+			builder.put(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_0(), "rule__DelegateMock__ManualMocksAssignment_7_0");
+			builder.put(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_1_1(), "rule__DelegateMock__ManualMocksAssignment_7_1_1");
+			builder.put(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_0(), "rule__MockingRule__ComparisonsAssignment_5_0");
+			builder.put(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_1_1(), "rule__MockingRule__ComparisonsAssignment_5_1_1");
+			builder.put(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_0(), "rule__MockingRule__VariablesAssignment_9_0");
+			builder.put(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_1_1(), "rule__MockingRule__VariablesAssignment_9_1_1");
+			builder.put(grammarAccess.getManualMockAccess().getServiceNameAssignment_2(), "rule__ManualMock__ServiceNameAssignment_2");
+			builder.put(grammarAccess.getManualMockAccess().getSetterAssignment_5(), "rule__ManualMock__SetterAssignment_5");
+			builder.put(grammarAccess.getStringCompareAccess().getKeyAssignment_0(), "rule__StringCompare__KeyAssignment_0");
+			builder.put(grammarAccess.getStringCompareAccess().getCompareSymbolAssignment_1(), "rule__StringCompare__CompareSymbolAssignment_1");
+			builder.put(grammarAccess.getStringCompareAccess().getValueAssignment_2(), "rule__StringCompare__ValueAssignment_2");
+			builder.put(grammarAccess.getIntCompareAccess().getKeyAssignment_0(), "rule__IntCompare__KeyAssignment_0");
+			builder.put(grammarAccess.getIntCompareAccess().getCompareSymbolAssignment_1(), "rule__IntCompare__CompareSymbolAssignment_1");
+			builder.put(grammarAccess.getIntCompareAccess().getValueAssignment_2(), "rule__IntCompare__ValueAssignment_2");
+			builder.put(grammarAccess.getBooleanCompareAccess().getKeyAssignment_0(), "rule__BooleanCompare__KeyAssignment_0");
+			builder.put(grammarAccess.getBooleanCompareAccess().getCompareSymbolAssignment_1(), "rule__BooleanCompare__CompareSymbolAssignment_1");
+			builder.put(grammarAccess.getBooleanCompareAccess().getValueAssignment_2(), "rule__BooleanCompare__ValueAssignment_2");
+		}
+	}
+	
+	@Inject
+	private NameMappings nameMappings;
+
+	@Inject
+	private TestgeneratorDSLGrammarAccess grammarAccess;
+
+	@Override
+	protected InternalTestgeneratorDSLParser createParser() {
+		InternalTestgeneratorDSLParser result = new InternalTestgeneratorDSLParser(null);
+		result.setGrammarAccess(grammarAccess);
+		return result;
+	}
+
+	@Override
+	protected String getRuleName(AbstractElement element) {
+		return nameMappings.getRuleName(element);
+	}
+
+	@Override
+	protected String[] getInitialHiddenTokens() {
+		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+	}
+
+	public TestgeneratorDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+
+	public void setGrammarAccess(TestgeneratorDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+	
+	public NameMappings getNameMappings() {
+		return nameMappings;
+	}
+	
+	public void setNameMappings(NameMappings nameMappings) {
+		this.nameMappings = nameMappings;
+	}
+}
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -283,3 +570,4 @@ public class TestgeneratorDSLParser extends AbstractContentAssistParser {
 		this.nameMappings = nameMappings;
 	}
 }
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSL.g b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSL.g
index c340d0f0ea72669ea08fd48d14bdda67c9c76e26..32b03a430eb7559e986e4ebe621cc7f89a3adf49 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSL.g
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSL.g
@@ -1,3 +1,13302 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+grammar InternalTestgeneratorDSL;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+}
+
+@lexer::header {
+package de.fhmuenster.masterthesis.ide.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.ide.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package de.fhmuenster.masterthesis.ide.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.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
+import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess;
+
+}
+@parser::members {
+	private TestgeneratorDSLGrammarAccess grammarAccess;
+
+	public void setGrammarAccess(TestgeneratorDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+
+	@Override
+	protected Grammar getGrammar() {
+		return grammarAccess.getGrammar();
+	}
+
+	@Override
+	protected String getValueForTokenName(String tokenName) {
+		return tokenName;
+	}
+}
+
+// Entry rule entryRuleModel
+entryRuleModel
+:
+{ before(grammarAccess.getModelRule()); }
+	 ruleModel
+{ after(grammarAccess.getModelRule()); } 
+	 EOF 
+;
+
+// Rule Model
+ruleModel 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getModelAccess().getDeclarationsAssignment()); }
+		(rule__Model__DeclarationsAssignment)*
+		{ after(grammarAccess.getModelAccess().getDeclarationsAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDeclaration
+entryRuleDeclaration
+:
+{ before(grammarAccess.getDeclarationRule()); }
+	 ruleDeclaration
+{ after(grammarAccess.getDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule Declaration
+ruleDeclaration 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDeclarationAccess().getAlternatives()); }
+		(rule__Declaration__Alternatives)
+		{ after(grammarAccess.getDeclarationAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleBPMNDiagram
+entryRuleBPMNDiagram
+:
+{ before(grammarAccess.getBPMNDiagramRule()); }
+	 ruleBPMNDiagram
+{ after(grammarAccess.getBPMNDiagramRule()); } 
+	 EOF 
+;
+
+// Rule BPMNDiagram
+ruleBPMNDiagram 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getGroup()); }
+		(rule__BPMNDiagram__Group__0)
+		{ after(grammarAccess.getBPMNDiagramAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleBPMNReference
+entryRuleBPMNReference
+:
+{ before(grammarAccess.getBPMNReferenceRule()); }
+	 ruleBPMNReference
+{ after(grammarAccess.getBPMNReferenceRule()); } 
+	 EOF 
+;
+
+// Rule BPMNReference
+ruleBPMNReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getBPMNReferenceAccess().getRefAssignment()); }
+		(rule__BPMNReference__RefAssignment)
+		{ after(grammarAccess.getBPMNReferenceAccess().getRefAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleFlowElement
+entryRuleFlowElement
+:
+{ before(grammarAccess.getFlowElementRule()); }
+	 ruleFlowElement
+{ after(grammarAccess.getFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule FlowElement
+ruleFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getFlowElementAccess().getAlternatives()); }
+		(rule__FlowElement__Alternatives)
+		{ after(grammarAccess.getFlowElementAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStartFlowElement
+entryRuleStartFlowElement
+:
+{ before(grammarAccess.getStartFlowElementRule()); }
+	 ruleStartFlowElement
+{ after(grammarAccess.getStartFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule StartFlowElement
+ruleStartFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getStartFlowElementAccess().getGroup()); }
+		(rule__StartFlowElement__Group__0)
+		{ after(grammarAccess.getStartFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleEndFlowElement
+entryRuleEndFlowElement
+:
+{ before(grammarAccess.getEndFlowElementRule()); }
+	 ruleEndFlowElement
+{ after(grammarAccess.getEndFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule EndFlowElement
+ruleEndFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getEndFlowElementAccess().getGroup()); }
+		(rule__EndFlowElement__Group__0)
+		{ after(grammarAccess.getEndFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleUserTaskFlowElement
+entryRuleUserTaskFlowElement
+:
+{ before(grammarAccess.getUserTaskFlowElementRule()); }
+	 ruleUserTaskFlowElement
+{ after(grammarAccess.getUserTaskFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule UserTaskFlowElement
+ruleUserTaskFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getUserTaskFlowElementAccess().getGroup()); }
+		(rule__UserTaskFlowElement__Group__0)
+		{ after(grammarAccess.getUserTaskFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleManualTaskFlowElement
+entryRuleManualTaskFlowElement
+:
+{ before(grammarAccess.getManualTaskFlowElementRule()); }
+	 ruleManualTaskFlowElement
+{ after(grammarAccess.getManualTaskFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule ManualTaskFlowElement
+ruleManualTaskFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getManualTaskFlowElementAccess().getGroup()); }
+		(rule__ManualTaskFlowElement__Group__0)
+		{ after(grammarAccess.getManualTaskFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleScriptTaskFlowElement
+entryRuleScriptTaskFlowElement
+:
+{ before(grammarAccess.getScriptTaskFlowElementRule()); }
+	 ruleScriptTaskFlowElement
+{ after(grammarAccess.getScriptTaskFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule ScriptTaskFlowElement
+ruleScriptTaskFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getScriptTaskFlowElementAccess().getGroup()); }
+		(rule__ScriptTaskFlowElement__Group__0)
+		{ after(grammarAccess.getScriptTaskFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleServiceTaskFlowElement
+entryRuleServiceTaskFlowElement
+:
+{ before(grammarAccess.getServiceTaskFlowElementRule()); }
+	 ruleServiceTaskFlowElement
+{ after(grammarAccess.getServiceTaskFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule ServiceTaskFlowElement
+ruleServiceTaskFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getServiceTaskFlowElementAccess().getAlternatives()); }
+		(rule__ServiceTaskFlowElement__Alternatives)
+		{ after(grammarAccess.getServiceTaskFlowElementAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDelegateServiceTaskFlowElement
+entryRuleDelegateServiceTaskFlowElement
+:
+{ before(grammarAccess.getDelegateServiceTaskFlowElementRule()); }
+	 ruleDelegateServiceTaskFlowElement
+{ after(grammarAccess.getDelegateServiceTaskFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule DelegateServiceTaskFlowElement
+ruleDelegateServiceTaskFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getGroup()); }
+		(rule__DelegateServiceTaskFlowElement__Group__0)
+		{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleExternalServiceTaskFlowElement
+entryRuleExternalServiceTaskFlowElement
+:
+{ before(grammarAccess.getExternalServiceTaskFlowElementRule()); }
+	 ruleExternalServiceTaskFlowElement
+{ after(grammarAccess.getExternalServiceTaskFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule ExternalServiceTaskFlowElement
+ruleExternalServiceTaskFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup()); }
+		(rule__ExternalServiceTaskFlowElement__Group__0)
+		{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleBusinessRuleTaskFlowElement
+entryRuleBusinessRuleTaskFlowElement
+:
+{ before(grammarAccess.getBusinessRuleTaskFlowElementRule()); }
+	 ruleBusinessRuleTaskFlowElement
+{ after(grammarAccess.getBusinessRuleTaskFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule BusinessRuleTaskFlowElement
+ruleBusinessRuleTaskFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getGroup()); }
+		(rule__BusinessRuleTaskFlowElement__Group__0)
+		{ after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleGatewayFlowElement
+entryRuleGatewayFlowElement
+:
+{ before(grammarAccess.getGatewayFlowElementRule()); }
+	 ruleGatewayFlowElement
+{ after(grammarAccess.getGatewayFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule GatewayFlowElement
+ruleGatewayFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getGatewayFlowElementAccess().getGroup()); }
+		(rule__GatewayFlowElement__Group__0)
+		{ after(grammarAccess.getGatewayFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleSequenceFlowElement
+entryRuleSequenceFlowElement
+:
+{ before(grammarAccess.getSequenceFlowElementRule()); }
+	 ruleSequenceFlowElement
+{ after(grammarAccess.getSequenceFlowElementRule()); } 
+	 EOF 
+;
+
+// Rule SequenceFlowElement
+ruleSequenceFlowElement 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getSequenceFlowElementAccess().getGroup()); }
+		(rule__SequenceFlowElement__Group__0)
+		{ after(grammarAccess.getSequenceFlowElementAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleFlowElementReference
+entryRuleFlowElementReference
+:
+{ before(grammarAccess.getFlowElementReferenceRule()); }
+	 ruleFlowElementReference
+{ after(grammarAccess.getFlowElementReferenceRule()); } 
+	 EOF 
+;
+
+// Rule FlowElementReference
+ruleFlowElementReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getFlowElementReferenceAccess().getRefAssignment()); }
+		(rule__FlowElementReference__RefAssignment)
+		{ after(grammarAccess.getFlowElementReferenceAccess().getRefAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDelegateServiceTaskReference
+entryRuleDelegateServiceTaskReference
+:
+{ before(grammarAccess.getDelegateServiceTaskReferenceRule()); }
+	 ruleDelegateServiceTaskReference
+{ after(grammarAccess.getDelegateServiceTaskReferenceRule()); } 
+	 EOF 
+;
+
+// Rule DelegateServiceTaskReference
+ruleDelegateServiceTaskReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefAssignment()); }
+		(rule__DelegateServiceTaskReference__RefAssignment)
+		{ after(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleExternalTopic
+entryRuleExternalTopic
+:
+{ before(grammarAccess.getExternalTopicRule()); }
+	 ruleExternalTopic
+{ after(grammarAccess.getExternalTopicRule()); } 
+	 EOF 
+;
+
+// Rule ExternalTopic
+ruleExternalTopic 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getExternalTopicAccess().getGroup()); }
+		(rule__ExternalTopic__Group__0)
+		{ after(grammarAccess.getExternalTopicAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleExternalTopicReference
+entryRuleExternalTopicReference
+:
+{ before(grammarAccess.getExternalTopicReferenceRule()); }
+	 ruleExternalTopicReference
+{ after(grammarAccess.getExternalTopicReferenceRule()); } 
+	 EOF 
+;
+
+// Rule ExternalTopicReference
+ruleExternalTopicReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getExternalTopicReferenceAccess().getRefAssignment()); }
+		(rule__ExternalTopicReference__RefAssignment)
+		{ after(grammarAccess.getExternalTopicReferenceAccess().getRefAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVariable
+entryRuleVariable
+:
+{ before(grammarAccess.getVariableRule()); }
+	 ruleVariable
+{ after(grammarAccess.getVariableRule()); } 
+	 EOF 
+;
+
+// Rule Variable
+ruleVariable 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getVariableAccess().getAlternatives()); }
+		(rule__Variable__Alternatives)
+		{ after(grammarAccess.getVariableAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVariableReference
+entryRuleVariableReference
+:
+{ before(grammarAccess.getVariableReferenceRule()); }
+	 ruleVariableReference
+{ after(grammarAccess.getVariableReferenceRule()); } 
+	 EOF 
+;
+
+// Rule VariableReference
+ruleVariableReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getVariableReferenceAccess().getRefAssignment()); }
+		(rule__VariableReference__RefAssignment)
+		{ after(grammarAccess.getVariableReferenceAccess().getRefAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStringVariable
+entryRuleStringVariable
+:
+{ before(grammarAccess.getStringVariableRule()); }
+	 ruleStringVariable
+{ after(grammarAccess.getStringVariableRule()); } 
+	 EOF 
+;
+
+// Rule StringVariable
+ruleStringVariable 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getStringVariableAccess().getGroup()); }
+		(rule__StringVariable__Group__0)
+		{ after(grammarAccess.getStringVariableAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIntVariable
+entryRuleIntVariable
+:
+{ before(grammarAccess.getIntVariableRule()); }
+	 ruleIntVariable
+{ after(grammarAccess.getIntVariableRule()); } 
+	 EOF 
+;
+
+// Rule IntVariable
+ruleIntVariable 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getIntVariableAccess().getGroup()); }
+		(rule__IntVariable__Group__0)
+		{ after(grammarAccess.getIntVariableAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleBooleanVariable
+entryRuleBooleanVariable
+:
+{ before(grammarAccess.getBooleanVariableRule()); }
+	 ruleBooleanVariable
+{ after(grammarAccess.getBooleanVariableRule()); } 
+	 EOF 
+;
+
+// Rule BooleanVariable
+ruleBooleanVariable 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getBooleanVariableAccess().getGroup()); }
+		(rule__BooleanVariable__Group__0)
+		{ after(grammarAccess.getBooleanVariableAccess().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 entryRuleFlow
+entryRuleFlow
+:
+{ before(grammarAccess.getFlowRule()); }
+	 ruleFlow
+{ after(grammarAccess.getFlowRule()); } 
+	 EOF 
+;
+
+// Rule Flow
+ruleFlow 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getFlowAccess().getGroup()); }
+		(rule__Flow__Group__0)
+		{ after(grammarAccess.getFlowAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleFlowReference
+entryRuleFlowReference
+:
+{ before(grammarAccess.getFlowReferenceRule()); }
+	 ruleFlowReference
+{ after(grammarAccess.getFlowReferenceRule()); } 
+	 EOF 
+;
+
+// Rule FlowReference
+ruleFlowReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getFlowReferenceAccess().getRefAssignment()); }
+		(rule__FlowReference__RefAssignment)
+		{ after(grammarAccess.getFlowReferenceAccess().getRefAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleTest
+entryRuleTest
+:
+{ before(grammarAccess.getTestRule()); }
+	 ruleTest
+{ after(grammarAccess.getTestRule()); } 
+	 EOF 
+;
+
+// Rule Test
+ruleTest 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTestAccess().getGroup()); }
+		(rule__Test__Group__0)
+		{ after(grammarAccess.getTestAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVariableDeclarations
+entryRuleVariableDeclarations
+:
+{ before(grammarAccess.getVariableDeclarationsRule()); }
+	 ruleVariableDeclarations
+{ after(grammarAccess.getVariableDeclarationsRule()); } 
+	 EOF 
+;
+
+// Rule VariableDeclarations
+ruleVariableDeclarations 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getVariableDeclarationsAccess().getGroup()); }
+		(rule__VariableDeclarations__Group__0)
+		{ after(grammarAccess.getVariableDeclarationsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleEndChecks
+entryRuleEndChecks
+:
+{ before(grammarAccess.getEndChecksRule()); }
+	 ruleEndChecks
+{ after(grammarAccess.getEndChecksRule()); } 
+	 EOF 
+;
+
+// Rule EndChecks
+ruleEndChecks 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getEndChecksAccess().getGroup()); }
+		(rule__EndChecks__Group__0)
+		{ after(grammarAccess.getEndChecksAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVariableDeclaration
+entryRuleVariableDeclaration
+:
+{ before(grammarAccess.getVariableDeclarationRule()); }
+	 ruleVariableDeclaration
+{ after(grammarAccess.getVariableDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule VariableDeclaration
+ruleVariableDeclaration 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getVariableDeclarationAccess().getAlternatives()); }
+		(rule__VariableDeclaration__Alternatives)
+		{ after(grammarAccess.getVariableDeclarationAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStringVariableDeclaration
+entryRuleStringVariableDeclaration
+:
+{ before(grammarAccess.getStringVariableDeclarationRule()); }
+	 ruleStringVariableDeclaration
+{ after(grammarAccess.getStringVariableDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule StringVariableDeclaration
+ruleStringVariableDeclaration 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getStringVariableDeclarationAccess().getGroup()); }
+		(rule__StringVariableDeclaration__Group__0)
+		{ after(grammarAccess.getStringVariableDeclarationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIntVariableDeclaration
+entryRuleIntVariableDeclaration
+:
+{ before(grammarAccess.getIntVariableDeclarationRule()); }
+	 ruleIntVariableDeclaration
+{ after(grammarAccess.getIntVariableDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule IntVariableDeclaration
+ruleIntVariableDeclaration 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getIntVariableDeclarationAccess().getGroup()); }
+		(rule__IntVariableDeclaration__Group__0)
+		{ after(grammarAccess.getIntVariableDeclarationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleBooleanVariableDeclaration
+entryRuleBooleanVariableDeclaration
+:
+{ before(grammarAccess.getBooleanVariableDeclarationRule()); }
+	 ruleBooleanVariableDeclaration
+{ after(grammarAccess.getBooleanVariableDeclarationRule()); } 
+	 EOF 
+;
+
+// Rule BooleanVariableDeclaration
+ruleBooleanVariableDeclaration 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getBooleanVariableDeclarationAccess().getGroup()); }
+		(rule__BooleanVariableDeclaration__Group__0)
+		{ after(grammarAccess.getBooleanVariableDeclarationAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleEndCheck
+entryRuleEndCheck
+:
+{ before(grammarAccess.getEndCheckRule()); }
+	 ruleEndCheck
+{ after(grammarAccess.getEndCheckRule()); } 
+	 EOF 
+;
+
+// Rule EndCheck
+ruleEndCheck 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getEndCheckAccess().getAlternatives()); }
+		(rule__EndCheck__Alternatives)
+		{ after(grammarAccess.getEndCheckAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVariableEquals
+entryRuleVariableEquals
+:
+{ before(grammarAccess.getVariableEqualsRule()); }
+	 ruleVariableEquals
+{ after(grammarAccess.getVariableEqualsRule()); } 
+	 EOF 
+;
+
+// Rule VariableEquals
+ruleVariableEquals 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getVariableEqualsAccess().getAlternatives()); }
+		(rule__VariableEquals__Alternatives)
+		{ after(grammarAccess.getVariableEqualsAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStringVariableEquals
+entryRuleStringVariableEquals
+:
+{ before(grammarAccess.getStringVariableEqualsRule()); }
+	 ruleStringVariableEquals
+{ after(grammarAccess.getStringVariableEqualsRule()); } 
+	 EOF 
+;
+
+// Rule StringVariableEquals
+ruleStringVariableEquals 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getStringVariableEqualsAccess().getGroup()); }
+		(rule__StringVariableEquals__Group__0)
+		{ after(grammarAccess.getStringVariableEqualsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIntVariableEquals
+entryRuleIntVariableEquals
+:
+{ before(grammarAccess.getIntVariableEqualsRule()); }
+	 ruleIntVariableEquals
+{ after(grammarAccess.getIntVariableEqualsRule()); } 
+	 EOF 
+;
+
+// Rule IntVariableEquals
+ruleIntVariableEquals 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getIntVariableEqualsAccess().getGroup()); }
+		(rule__IntVariableEquals__Group__0)
+		{ after(grammarAccess.getIntVariableEqualsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleBooleanVariableEquals
+entryRuleBooleanVariableEquals
+:
+{ before(grammarAccess.getBooleanVariableEqualsRule()); }
+	 ruleBooleanVariableEquals
+{ after(grammarAccess.getBooleanVariableEqualsRule()); } 
+	 EOF 
+;
+
+// Rule BooleanVariableEquals
+ruleBooleanVariableEquals 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getBooleanVariableEqualsAccess().getGroup()); }
+		(rule__BooleanVariableEquals__Group__0)
+		{ after(grammarAccess.getBooleanVariableEqualsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleVariableNotEquals
+entryRuleVariableNotEquals
+:
+{ before(grammarAccess.getVariableNotEqualsRule()); }
+	 ruleVariableNotEquals
+{ after(grammarAccess.getVariableNotEqualsRule()); } 
+	 EOF 
+;
+
+// Rule VariableNotEquals
+ruleVariableNotEquals 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getVariableNotEqualsAccess().getAlternatives()); }
+		(rule__VariableNotEquals__Alternatives)
+		{ after(grammarAccess.getVariableNotEqualsAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStringVariableNotEquals
+entryRuleStringVariableNotEquals
+:
+{ before(grammarAccess.getStringVariableNotEqualsRule()); }
+	 ruleStringVariableNotEquals
+{ after(grammarAccess.getStringVariableNotEqualsRule()); } 
+	 EOF 
+;
+
+// Rule StringVariableNotEquals
+ruleStringVariableNotEquals 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getStringVariableNotEqualsAccess().getGroup()); }
+		(rule__StringVariableNotEquals__Group__0)
+		{ after(grammarAccess.getStringVariableNotEqualsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIntVariableNotEquals
+entryRuleIntVariableNotEquals
+:
+{ before(grammarAccess.getIntVariableNotEqualsRule()); }
+	 ruleIntVariableNotEquals
+{ after(grammarAccess.getIntVariableNotEqualsRule()); } 
+	 EOF 
+;
+
+// Rule IntVariableNotEquals
+ruleIntVariableNotEquals 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getIntVariableNotEqualsAccess().getGroup()); }
+		(rule__IntVariableNotEquals__Group__0)
+		{ after(grammarAccess.getIntVariableNotEqualsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleBooleanVariableNotEquals
+entryRuleBooleanVariableNotEquals
+:
+{ before(grammarAccess.getBooleanVariableNotEqualsRule()); }
+	 ruleBooleanVariableNotEquals
+{ after(grammarAccess.getBooleanVariableNotEqualsRule()); } 
+	 EOF 
+;
+
+// Rule BooleanVariableNotEquals
+ruleBooleanVariableNotEquals 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getBooleanVariableNotEqualsAccess().getGroup()); }
+		(rule__BooleanVariableNotEquals__Group__0)
+		{ after(grammarAccess.getBooleanVariableNotEqualsAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleMock
+entryRuleMock
+:
+{ before(grammarAccess.getMockRule()); }
+	 ruleMock
+{ after(grammarAccess.getMockRule()); } 
+	 EOF 
+;
+
+// Rule Mock
+ruleMock 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getMockAccess().getAlternatives()); }
+		(rule__Mock__Alternatives)
+		{ after(grammarAccess.getMockAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleMockReference
+entryRuleMockReference
+:
+{ before(grammarAccess.getMockReferenceRule()); }
+	 ruleMockReference
+{ after(grammarAccess.getMockReferenceRule()); } 
+	 EOF 
+;
+
+// Rule MockReference
+ruleMockReference 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getMockReferenceAccess().getRefAssignment()); }
+		(rule__MockReference__RefAssignment)
+		{ after(grammarAccess.getMockReferenceAccess().getRefAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleExternalServiceMock
+entryRuleExternalServiceMock
+:
+{ before(grammarAccess.getExternalServiceMockRule()); }
+	 ruleExternalServiceMock
+{ after(grammarAccess.getExternalServiceMockRule()); } 
+	 EOF 
+;
+
+// Rule ExternalServiceMock
+ruleExternalServiceMock 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getExternalServiceMockAccess().getGroup()); }
+		(rule__ExternalServiceMock__Group__0)
+		{ after(grammarAccess.getExternalServiceMockAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleDelegateMock
+entryRuleDelegateMock
+:
+{ before(grammarAccess.getDelegateMockRule()); }
+	 ruleDelegateMock
+{ after(grammarAccess.getDelegateMockRule()); } 
+	 EOF 
+;
+
+// Rule DelegateMock
+ruleDelegateMock 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getDelegateMockAccess().getGroup()); }
+		(rule__DelegateMock__Group__0)
+		{ after(grammarAccess.getDelegateMockAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleMockingRule
+entryRuleMockingRule
+:
+{ before(grammarAccess.getMockingRuleRule()); }
+	 ruleMockingRule
+{ after(grammarAccess.getMockingRuleRule()); } 
+	 EOF 
+;
+
+// Rule MockingRule
+ruleMockingRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getMockingRuleAccess().getGroup()); }
+		(rule__MockingRule__Group__0)
+		{ after(grammarAccess.getMockingRuleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleManualMock
+entryRuleManualMock
+:
+{ before(grammarAccess.getManualMockRule()); }
+	 ruleManualMock
+{ after(grammarAccess.getManualMockRule()); } 
+	 EOF 
+;
+
+// Rule ManualMock
+ruleManualMock 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getManualMockAccess().getGroup()); }
+		(rule__ManualMock__Group__0)
+		{ after(grammarAccess.getManualMockAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleCompare
+entryRuleCompare
+:
+{ before(grammarAccess.getCompareRule()); }
+	 ruleCompare
+{ after(grammarAccess.getCompareRule()); } 
+	 EOF 
+;
+
+// Rule Compare
+ruleCompare 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getCompareAccess().getAlternatives()); }
+		(rule__Compare__Alternatives)
+		{ after(grammarAccess.getCompareAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleStringCompare
+entryRuleStringCompare
+:
+{ before(grammarAccess.getStringCompareRule()); }
+	 ruleStringCompare
+{ after(grammarAccess.getStringCompareRule()); } 
+	 EOF 
+;
+
+// Rule StringCompare
+ruleStringCompare 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getStringCompareAccess().getGroup()); }
+		(rule__StringCompare__Group__0)
+		{ after(grammarAccess.getStringCompareAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleIntCompare
+entryRuleIntCompare
+:
+{ before(grammarAccess.getIntCompareRule()); }
+	 ruleIntCompare
+{ after(grammarAccess.getIntCompareRule()); } 
+	 EOF 
+;
+
+// Rule IntCompare
+ruleIntCompare 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getIntCompareAccess().getGroup()); }
+		(rule__IntCompare__Group__0)
+		{ after(grammarAccess.getIntCompareAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleBooleanCompare
+entryRuleBooleanCompare
+:
+{ before(grammarAccess.getBooleanCompareRule()); }
+	 ruleBooleanCompare
+{ after(grammarAccess.getBooleanCompareRule()); } 
+	 EOF 
+;
+
+// Rule BooleanCompare
+ruleBooleanCompare 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getBooleanCompareAccess().getGroup()); }
+		(rule__BooleanCompare__Group__0)
+		{ after(grammarAccess.getBooleanCompareAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule Boolean
+ruleBoolean
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanAccess().getAlternatives()); }
+		(rule__Boolean__Alternatives)
+		{ after(grammarAccess.getBooleanAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule StringCompareSymbol
+ruleStringCompareSymbol
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringCompareSymbolAccess().getAlternatives()); }
+		(rule__StringCompareSymbol__Alternatives)
+		{ after(grammarAccess.getStringCompareSymbolAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule IntCompareSymbol
+ruleIntCompareSymbol
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntCompareSymbolAccess().getAlternatives()); }
+		(rule__IntCompareSymbol__Alternatives)
+		{ after(grammarAccess.getIntCompareSymbolAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Rule BooleanCompareSymbol
+ruleBooleanCompareSymbol
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanCompareSymbolAccess().getAlternatives()); }
+		(rule__BooleanCompareSymbol__Alternatives)
+		{ after(grammarAccess.getBooleanCompareSymbolAccess().getAlternatives()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Declaration__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDeclarationAccess().getBPMNDiagramParserRuleCall_0()); }
+		ruleBPMNDiagram
+		{ after(grammarAccess.getDeclarationAccess().getBPMNDiagramParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDeclarationAccess().getFlowElementParserRuleCall_1()); }
+		ruleFlowElement
+		{ after(grammarAccess.getDeclarationAccess().getFlowElementParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDeclarationAccess().getVariableParserRuleCall_2()); }
+		ruleVariable
+		{ after(grammarAccess.getDeclarationAccess().getVariableParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDeclarationAccess().getFlowParserRuleCall_3()); }
+		ruleFlow
+		{ after(grammarAccess.getDeclarationAccess().getFlowParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDeclarationAccess().getTestParserRuleCall_4()); }
+		ruleTest
+		{ after(grammarAccess.getDeclarationAccess().getTestParserRuleCall_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDeclarationAccess().getMockParserRuleCall_5()); }
+		ruleMock
+		{ after(grammarAccess.getDeclarationAccess().getMockParserRuleCall_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDeclarationAccess().getExternalTopicParserRuleCall_6()); }
+		ruleExternalTopic
+		{ after(grammarAccess.getDeclarationAccess().getExternalTopicParserRuleCall_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getDeclarationAccess().getLoopParserRuleCall_7()); }
+		ruleLoop
+		{ after(grammarAccess.getDeclarationAccess().getLoopParserRuleCall_7()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowElement__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowElementAccess().getStartFlowElementParserRuleCall_0()); }
+		ruleStartFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getStartFlowElementParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFlowElementAccess().getEndFlowElementParserRuleCall_1()); }
+		ruleEndFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getEndFlowElementParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFlowElementAccess().getUserTaskFlowElementParserRuleCall_2()); }
+		ruleUserTaskFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getUserTaskFlowElementParserRuleCall_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFlowElementAccess().getManualTaskFlowElementParserRuleCall_3()); }
+		ruleManualTaskFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getManualTaskFlowElementParserRuleCall_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFlowElementAccess().getScriptTaskFlowElementParserRuleCall_4()); }
+		ruleScriptTaskFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getScriptTaskFlowElementParserRuleCall_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFlowElementAccess().getServiceTaskFlowElementParserRuleCall_5()); }
+		ruleServiceTaskFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getServiceTaskFlowElementParserRuleCall_5()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFlowElementAccess().getBusinessRuleTaskFlowElementParserRuleCall_6()); }
+		ruleBusinessRuleTaskFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getBusinessRuleTaskFlowElementParserRuleCall_6()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFlowElementAccess().getGatewayFlowElementParserRuleCall_7()); }
+		ruleGatewayFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getGatewayFlowElementParserRuleCall_7()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getFlowElementAccess().getSequenceFlowElementParserRuleCall_8()); }
+		ruleSequenceFlowElement
+		{ after(grammarAccess.getFlowElementAccess().getSequenceFlowElementParserRuleCall_8()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ServiceTaskFlowElement__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getServiceTaskFlowElementAccess().getDelegateServiceTaskFlowElementParserRuleCall_0()); }
+		ruleDelegateServiceTaskFlowElement
+		{ after(grammarAccess.getServiceTaskFlowElementAccess().getDelegateServiceTaskFlowElementParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getServiceTaskFlowElementAccess().getExternalServiceTaskFlowElementParserRuleCall_1()); }
+		ruleExternalServiceTaskFlowElement
+		{ after(grammarAccess.getServiceTaskFlowElementAccess().getExternalServiceTaskFlowElementParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Variable__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getVariableAccess().getStringVariableParserRuleCall_0()); }
+		ruleStringVariable
+		{ after(grammarAccess.getVariableAccess().getStringVariableParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getVariableAccess().getIntVariableParserRuleCall_1()); }
+		ruleIntVariable
+		{ after(grammarAccess.getVariableAccess().getIntVariableParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getVariableAccess().getBooleanVariableParserRuleCall_2()); }
+		ruleBooleanVariable
+		{ after(grammarAccess.getVariableAccess().getBooleanVariableParserRuleCall_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclaration__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getVariableDeclarationAccess().getStringVariableDeclarationParserRuleCall_0()); }
+		ruleStringVariableDeclaration
+		{ after(grammarAccess.getVariableDeclarationAccess().getStringVariableDeclarationParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getVariableDeclarationAccess().getIntVariableDeclarationParserRuleCall_1()); }
+		ruleIntVariableDeclaration
+		{ after(grammarAccess.getVariableDeclarationAccess().getIntVariableDeclarationParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getVariableDeclarationAccess().getBooleanVariableDeclarationParserRuleCall_2()); }
+		ruleBooleanVariableDeclaration
+		{ after(grammarAccess.getVariableDeclarationAccess().getBooleanVariableDeclarationParserRuleCall_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndCheck__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getEndCheckAccess().getVariableEqualsParserRuleCall_0()); }
+		ruleVariableEquals
+		{ after(grammarAccess.getEndCheckAccess().getVariableEqualsParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getEndCheckAccess().getVariableNotEqualsParserRuleCall_1()); }
+		ruleVariableNotEquals
+		{ after(grammarAccess.getEndCheckAccess().getVariableNotEqualsParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableEquals__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getVariableEqualsAccess().getStringVariableEqualsParserRuleCall_0()); }
+		ruleStringVariableEquals
+		{ after(grammarAccess.getVariableEqualsAccess().getStringVariableEqualsParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getVariableEqualsAccess().getIntVariableEqualsParserRuleCall_1()); }
+		ruleIntVariableEquals
+		{ after(grammarAccess.getVariableEqualsAccess().getIntVariableEqualsParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getVariableEqualsAccess().getBooleanVariableEqualsParserRuleCall_2()); }
+		ruleBooleanVariableEquals
+		{ after(grammarAccess.getVariableEqualsAccess().getBooleanVariableEqualsParserRuleCall_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableNotEquals__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getVariableNotEqualsAccess().getStringVariableNotEqualsParserRuleCall_0()); }
+		ruleStringVariableNotEquals
+		{ after(grammarAccess.getVariableNotEqualsAccess().getStringVariableNotEqualsParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getVariableNotEqualsAccess().getIntVariableNotEqualsParserRuleCall_1()); }
+		ruleIntVariableNotEquals
+		{ after(grammarAccess.getVariableNotEqualsAccess().getIntVariableNotEqualsParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getVariableNotEqualsAccess().getBooleanVariableNotEqualsParserRuleCall_2()); }
+		ruleBooleanVariableNotEquals
+		{ after(grammarAccess.getVariableNotEqualsAccess().getBooleanVariableNotEqualsParserRuleCall_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Mock__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getMockAccess().getExternalServiceMockParserRuleCall_0()); }
+		ruleExternalServiceMock
+		{ after(grammarAccess.getMockAccess().getExternalServiceMockParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getMockAccess().getDelegateMockParserRuleCall_1()); }
+		ruleDelegateMock
+		{ after(grammarAccess.getMockAccess().getDelegateMockParserRuleCall_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Compare__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getCompareAccess().getStringCompareParserRuleCall_0()); }
+		ruleStringCompare
+		{ after(grammarAccess.getCompareAccess().getStringCompareParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getCompareAccess().getIntCompareParserRuleCall_1()); }
+		ruleIntCompare
+		{ after(grammarAccess.getCompareAccess().getIntCompareParserRuleCall_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getCompareAccess().getBooleanCompareParserRuleCall_2()); }
+		ruleBooleanCompare
+		{ after(grammarAccess.getCompareAccess().getBooleanCompareParserRuleCall_2()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Boolean__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanAccess().getTRUEEnumLiteralDeclaration_0()); }
+		('true')
+		{ after(grammarAccess.getBooleanAccess().getTRUEEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getBooleanAccess().getFALSEEnumLiteralDeclaration_1()); }
+		('false')
+		{ after(grammarAccess.getBooleanAccess().getFALSEEnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompareSymbol__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); }
+		('==')
+		{ after(grammarAccess.getStringCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getStringCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); }
+		('!=')
+		{ after(grammarAccess.getStringCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompareSymbol__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); }
+		('==')
+		{ after(grammarAccess.getIntCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getIntCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); }
+		('!=')
+		{ after(grammarAccess.getIntCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getIntCompareSymbolAccess().getLOWEREnumLiteralDeclaration_2()); }
+		('<')
+		{ after(grammarAccess.getIntCompareSymbolAccess().getLOWEREnumLiteralDeclaration_2()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getIntCompareSymbolAccess().getGREATEREnumLiteralDeclaration_3()); }
+		('>')
+		{ after(grammarAccess.getIntCompareSymbolAccess().getGREATEREnumLiteralDeclaration_3()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getIntCompareSymbolAccess().getLOWER_EQUALSEnumLiteralDeclaration_4()); }
+		('<=')
+		{ after(grammarAccess.getIntCompareSymbolAccess().getLOWER_EQUALSEnumLiteralDeclaration_4()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getIntCompareSymbolAccess().getGREATER_EQUALSEnumLiteralDeclaration_5()); }
+		('>=')
+		{ after(grammarAccess.getIntCompareSymbolAccess().getGREATER_EQUALSEnumLiteralDeclaration_5()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompareSymbol__Alternatives
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); }
+		('==')
+		{ after(grammarAccess.getBooleanCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getBooleanCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); }
+		('!=')
+		{ after(grammarAccess.getBooleanCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__0__Impl
+	rule__BPMNDiagram__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getBPMNDiagramKeyword_0()); }
+	'BPMNDiagram'
+	{ after(grammarAccess.getBPMNDiagramAccess().getBPMNDiagramKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__1__Impl
+	rule__BPMNDiagram__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getNameAssignment_1()); }
+	(rule__BPMNDiagram__NameAssignment_1)
+	{ after(grammarAccess.getBPMNDiagramAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__2__Impl
+	rule__BPMNDiagram__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_2()); }
+	'with'
+	{ after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__3__Impl
+	rule__BPMNDiagram__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getTestpackageKeyword_3()); }
+	'testpackage'
+	{ after(grammarAccess.getBPMNDiagramAccess().getTestpackageKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__4__Impl
+	rule__BPMNDiagram__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getTestpackageAssignment_4()); }
+	(rule__BPMNDiagram__TestpackageAssignment_4)
+	{ after(grammarAccess.getBPMNDiagramAccess().getTestpackageAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__5__Impl
+	rule__BPMNDiagram__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_5()); }
+	'with'
+	{ after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__6__Impl
+	rule__BPMNDiagram__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getBpmnKeyword_6()); }
+	'bpmn'
+	{ after(grammarAccess.getBPMNDiagramAccess().getBpmnKeyword_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__7__Impl
+	rule__BPMNDiagram__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getBpmnAssignment_7()); }
+	(rule__BPMNDiagram__BpmnAssignment_7)
+	{ after(grammarAccess.getBPMNDiagramAccess().getBpmnAssignment_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__8__Impl
+	rule__BPMNDiagram__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_8()); }
+	'with'
+	{ after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__9__Impl
+	rule__BPMNDiagram__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getKeyKeyword_9()); }
+	'key'
+	{ after(grammarAccess.getBPMNDiagramAccess().getKeyKeyword_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__10
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__10__Impl
+	rule__BPMNDiagram__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__10__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getKeyAssignment_10()); }
+	(rule__BPMNDiagram__KeyAssignment_10)
+	{ after(grammarAccess.getBPMNDiagramAccess().getKeyAssignment_10()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__11
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__11__Impl
+	rule__BPMNDiagram__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__11__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getGroup_11()); }
+	(rule__BPMNDiagram__Group_11__0)?
+	{ after(grammarAccess.getBPMNDiagramAccess().getGroup_11()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__12
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__12__Impl
+	rule__BPMNDiagram__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__12__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getGroup_12()); }
+	(rule__BPMNDiagram__Group_12__0)?
+	{ after(grammarAccess.getBPMNDiagramAccess().getGroup_12()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__13
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group__13__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group__13__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getDECLARATION_FINISHEDTerminalRuleCall_13()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getBPMNDiagramAccess().getDECLARATION_FINISHEDTerminalRuleCall_13()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BPMNDiagram__Group_11__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11__0__Impl
+	rule__BPMNDiagram__Group_11__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_11_0()); }
+	'with'
+	{ after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_11_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11__1__Impl
+	rule__BPMNDiagram__Group_11__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getDmnKeyword_11_1()); }
+	'dmn'
+	{ after(grammarAccess.getBPMNDiagramAccess().getDmnKeyword_11_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11__2__Impl
+	rule__BPMNDiagram__Group_11__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_11_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_11_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11__3__Impl
+	rule__BPMNDiagram__Group_11__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_11_3()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_11_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11__4__Impl
+	rule__BPMNDiagram__Group_11__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getGroup_11_4()); }
+	(rule__BPMNDiagram__Group_11_4__0)?
+	{ after(grammarAccess.getBPMNDiagramAccess().getGroup_11_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_11_5()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_11_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BPMNDiagram__Group_11_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11_4__0__Impl
+	rule__BPMNDiagram__Group_11_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_0()); }
+	(rule__BPMNDiagram__DmnAssignment_11_4_0)
+	{ after(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getGroup_11_4_1()); }
+	(rule__BPMNDiagram__Group_11_4_1__0)*
+	{ after(grammarAccess.getBPMNDiagramAccess().getGroup_11_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BPMNDiagram__Group_11_4_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11_4_1__0__Impl
+	rule__BPMNDiagram__Group_11_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11_4_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_11_4_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_11_4_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11_4_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_11_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_11_4_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_1_1()); }
+	(rule__BPMNDiagram__DmnAssignment_11_4_1_1)
+	{ after(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BPMNDiagram__Group_12__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12__0__Impl
+	rule__BPMNDiagram__Group_12__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_12_0()); }
+	'with'
+	{ after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_12_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12__1__Impl
+	rule__BPMNDiagram__Group_12__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getEmbeddedKeyword_12_1()); }
+	'embedded'
+	{ after(grammarAccess.getBPMNDiagramAccess().getEmbeddedKeyword_12_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12__2__Impl
+	rule__BPMNDiagram__Group_12__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_12_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_12_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12__3__Impl
+	rule__BPMNDiagram__Group_12__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_12_3()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_12_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12__4__Impl
+	rule__BPMNDiagram__Group_12__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getGroup_12_4()); }
+	(rule__BPMNDiagram__Group_12_4__0)?
+	{ after(grammarAccess.getBPMNDiagramAccess().getGroup_12_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_12_5()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_12_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BPMNDiagram__Group_12_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12_4__0__Impl
+	rule__BPMNDiagram__Group_12_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_0()); }
+	(rule__BPMNDiagram__EmbeddedAssignment_12_4_0)
+	{ after(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getGroup_12_4_1()); }
+	(rule__BPMNDiagram__Group_12_4_1__0)*
+	{ after(grammarAccess.getBPMNDiagramAccess().getGroup_12_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BPMNDiagram__Group_12_4_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12_4_1__0__Impl
+	rule__BPMNDiagram__Group_12_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12_4_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_12_4_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_12_4_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12_4_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BPMNDiagram__Group_12_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__Group_12_4_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_1_1()); }
+	(rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1)
+	{ after(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group__0__Impl
+	rule__StartFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getStartFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group__1__Impl
+	rule__StartFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getNameAssignment_1()); }
+	(rule__StartFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getStartFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group__2__Impl
+	rule__StartFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group__3__Impl
+	rule__StartFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getStartEventKeyword_3()); }
+	'StartEvent'
+	{ after(grammarAccess.getStartFlowElementAccess().getStartEventKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group__4__Impl
+	rule__StartFlowElement__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getGroup_4()); }
+	(rule__StartFlowElement__Group_4__0)?
+	{ after(grammarAccess.getStartFlowElementAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getStartFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartFlowElement__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4__0__Impl
+	rule__StartFlowElement__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getWithKeyword_4_0()); }
+	'with'
+	{ after(grammarAccess.getStartFlowElementAccess().getWithKeyword_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4__1__Impl
+	rule__StartFlowElement__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getInputVariablesKeyword_4_1()); }
+	'inputVariables'
+	{ after(grammarAccess.getStartFlowElementAccess().getInputVariablesKeyword_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4__2__Impl
+	rule__StartFlowElement__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4__3__Impl
+	rule__StartFlowElement__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getStartFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4__4__Impl
+	rule__StartFlowElement__Group_4__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getGroup_4_4()); }
+	(rule__StartFlowElement__Group_4_4__0)?
+	{ after(grammarAccess.getStartFlowElementAccess().getGroup_4_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getStartFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartFlowElement__Group_4_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4_4__0__Impl
+	rule__StartFlowElement__Group_4_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_0()); }
+	(rule__StartFlowElement__InputVariablesAssignment_4_4_0)
+	{ after(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getGroup_4_4_1()); }
+	(rule__StartFlowElement__Group_4_4_1__0)*
+	{ after(grammarAccess.getStartFlowElementAccess().getGroup_4_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StartFlowElement__Group_4_4_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4_4_1__0__Impl
+	rule__StartFlowElement__Group_4_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4_4_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getStartFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4_4_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StartFlowElement__Group_4_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__Group_4_4_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_1_1()); }
+	(rule__StartFlowElement__InputVariablesAssignment_4_4_1_1)
+	{ after(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndFlowElement__Group__0__Impl
+	rule__EndFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getEndFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndFlowElement__Group__1__Impl
+	rule__EndFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndFlowElementAccess().getNameAssignment_1()); }
+	(rule__EndFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getEndFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndFlowElement__Group__2__Impl
+	rule__EndFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getEndFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndFlowElement__Group__3__Impl
+	rule__EndFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndFlowElementAccess().getEndEventKeyword_3()); }
+	'EndEvent'
+	{ after(grammarAccess.getEndFlowElementAccess().getEndEventKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndFlowElement__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getEndFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__UserTaskFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group__0__Impl
+	rule__UserTaskFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group__1__Impl
+	rule__UserTaskFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getNameAssignment_1()); }
+	(rule__UserTaskFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group__2__Impl
+	rule__UserTaskFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group__3__Impl
+	rule__UserTaskFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getUserTaskKeyword_3()); }
+	'UserTask'
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getUserTaskKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group__4__Impl
+	rule__UserTaskFlowElement__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getGroup_4()); }
+	(rule__UserTaskFlowElement__Group_4__0)?
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__UserTaskFlowElement__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4__0__Impl
+	rule__UserTaskFlowElement__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getWithKeyword_4_0()); }
+	'with'
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getWithKeyword_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4__1__Impl
+	rule__UserTaskFlowElement__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesKeyword_4_1()); }
+	'inputVariables'
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesKeyword_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4__2__Impl
+	rule__UserTaskFlowElement__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4__3__Impl
+	rule__UserTaskFlowElement__Group_4__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4__4__Impl
+	rule__UserTaskFlowElement__Group_4__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4()); }
+	(rule__UserTaskFlowElement__Group_4_4__0)?
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__UserTaskFlowElement__Group_4_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4_4__0__Impl
+	rule__UserTaskFlowElement__Group_4_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_0()); }
+	(rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0)
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4_1()); }
+	(rule__UserTaskFlowElement__Group_4_4_1__0)*
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__UserTaskFlowElement__Group_4_4_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4_4_1__0__Impl
+	rule__UserTaskFlowElement__Group_4_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4_4_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4_4_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__UserTaskFlowElement__Group_4_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__Group_4_4_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_1_1()); }
+	(rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1)
+	{ after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ManualTaskFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualTaskFlowElement__Group__0__Impl
+	rule__ManualTaskFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualTaskFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getManualTaskFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualTaskFlowElement__Group__1__Impl
+	rule__ManualTaskFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualTaskFlowElementAccess().getNameAssignment_1()); }
+	(rule__ManualTaskFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getManualTaskFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualTaskFlowElement__Group__2__Impl
+	rule__ManualTaskFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getManualTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualTaskFlowElement__Group__3__Impl
+	rule__ManualTaskFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualTaskFlowElementAccess().getManualTaskKeyword_3()); }
+	'ManualTask'
+	{ after(grammarAccess.getManualTaskFlowElementAccess().getManualTaskKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualTaskFlowElement__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getManualTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ScriptTaskFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ScriptTaskFlowElement__Group__0__Impl
+	rule__ScriptTaskFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getScriptTaskFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getScriptTaskFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ScriptTaskFlowElement__Group__1__Impl
+	rule__ScriptTaskFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getScriptTaskFlowElementAccess().getNameAssignment_1()); }
+	(rule__ScriptTaskFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getScriptTaskFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ScriptTaskFlowElement__Group__2__Impl
+	rule__ScriptTaskFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getScriptTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getScriptTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ScriptTaskFlowElement__Group__3__Impl
+	rule__ScriptTaskFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getScriptTaskFlowElementAccess().getScriptTaskKeyword_3()); }
+	'ScriptTask'
+	{ after(grammarAccess.getScriptTaskFlowElementAccess().getScriptTaskKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ScriptTaskFlowElement__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getScriptTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getScriptTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DelegateServiceTaskFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__0__Impl
+	rule__DelegateServiceTaskFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__1__Impl
+	rule__DelegateServiceTaskFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameAssignment_1()); }
+	(rule__DelegateServiceTaskFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__2__Impl
+	rule__DelegateServiceTaskFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__3__Impl
+	rule__DelegateServiceTaskFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getServiceTaskKeyword_3()); }
+	'ServiceTask'
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getServiceTaskKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__4__Impl
+	rule__DelegateServiceTaskFlowElement__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getWithKeyword_4()); }
+	'with'
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getWithKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__5__Impl
+	rule__DelegateServiceTaskFlowElement__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateKeyword_5()); }
+	'delegate'
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__6__Impl
+	rule__DelegateServiceTaskFlowElement__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__7__Impl
+	rule__DelegateServiceTaskFlowElement__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateAssignment_7()); }
+	(rule__DelegateServiceTaskFlowElement__DelegateAssignment_7)
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateAssignment_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateServiceTaskFlowElement__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExternalServiceTaskFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__0__Impl
+	rule__ExternalServiceTaskFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__1__Impl
+	rule__ExternalServiceTaskFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameAssignment_1()); }
+	(rule__ExternalServiceTaskFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__2__Impl
+	rule__ExternalServiceTaskFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__3__Impl
+	rule__ExternalServiceTaskFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getServiceTaskKeyword_3()); }
+	'ServiceTask'
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getServiceTaskKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__4__Impl
+	rule__ExternalServiceTaskFlowElement__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_4()); }
+	'with'
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__5__Impl
+	rule__ExternalServiceTaskFlowElement__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalKeyword_5()); }
+	'external'
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__6__Impl
+	rule__ExternalServiceTaskFlowElement__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__7__Impl
+	rule__ExternalServiceTaskFlowElement__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicAssignment_7()); }
+	(rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7)
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicAssignment_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__8__Impl
+	rule__ExternalServiceTaskFlowElement__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8()); }
+	(rule__ExternalServiceTaskFlowElement__Group_8__0)?
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_9()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExternalServiceTaskFlowElement__Group_8__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8__0__Impl
+	rule__ExternalServiceTaskFlowElement__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_8_0()); }
+	'with'
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_8_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8__1__Impl
+	rule__ExternalServiceTaskFlowElement__Group_8__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedKeyword_8_1()); }
+	'hardcoded'
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedKeyword_8_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8__2__Impl
+	rule__ExternalServiceTaskFlowElement__Group_8__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getInputsKeyword_8_2()); }
+	'inputs'
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getInputsKeyword_8_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8__3__Impl
+	rule__ExternalServiceTaskFlowElement__Group_8__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_8_3()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_8_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8__4__Impl
+	rule__ExternalServiceTaskFlowElement__Group_8__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_8_4()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_8_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8__5__Impl
+	rule__ExternalServiceTaskFlowElement__Group_8__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5()); }
+	(rule__ExternalServiceTaskFlowElement__Group_8_5__0)?
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_8_6()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_8_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExternalServiceTaskFlowElement__Group_8_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl
+	rule__ExternalServiceTaskFlowElement__Group_8_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_0()); }
+	(rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0)
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5_1()); }
+	(rule__ExternalServiceTaskFlowElement__Group_8_5_1__0)*
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExternalServiceTaskFlowElement__Group_8_5_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl
+	rule__ExternalServiceTaskFlowElement__Group_8_5_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getSEPARATORTerminalRuleCall_8_5_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getSEPARATORTerminalRuleCall_8_5_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8_5_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_1_1()); }
+	(rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1)
+	{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BusinessRuleTaskFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BusinessRuleTaskFlowElement__Group__0__Impl
+	rule__BusinessRuleTaskFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BusinessRuleTaskFlowElement__Group__1__Impl
+	rule__BusinessRuleTaskFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameAssignment_1()); }
+	(rule__BusinessRuleTaskFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BusinessRuleTaskFlowElement__Group__2__Impl
+	rule__BusinessRuleTaskFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BusinessRuleTaskFlowElement__Group__3__Impl
+	rule__BusinessRuleTaskFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getBusinessRuleTaskKeyword_3()); }
+	'BusinessRuleTask'
+	{ after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getBusinessRuleTaskKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BusinessRuleTaskFlowElement__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__GatewayFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GatewayFlowElement__Group__0__Impl
+	rule__GatewayFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGatewayFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getGatewayFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GatewayFlowElement__Group__1__Impl
+	rule__GatewayFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGatewayFlowElementAccess().getNameAssignment_1()); }
+	(rule__GatewayFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getGatewayFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GatewayFlowElement__Group__2__Impl
+	rule__GatewayFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGatewayFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getGatewayFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GatewayFlowElement__Group__3__Impl
+	rule__GatewayFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGatewayFlowElementAccess().getGatewayKeyword_3()); }
+	'Gateway'
+	{ after(grammarAccess.getGatewayFlowElementAccess().getGatewayKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__GatewayFlowElement__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getGatewayFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getGatewayFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceFlowElement__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group__0__Impl
+	rule__SequenceFlowElement__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getFlowElementKeyword_0()); }
+	'FlowElement'
+	{ after(grammarAccess.getSequenceFlowElementAccess().getFlowElementKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group__1__Impl
+	rule__SequenceFlowElement__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getNameAssignment_1()); }
+	(rule__SequenceFlowElement__NameAssignment_1)
+	{ after(grammarAccess.getSequenceFlowElementAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group__2__Impl
+	rule__SequenceFlowElement__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group__3__Impl
+	rule__SequenceFlowElement__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getSequenceFlowKeyword_3()); }
+	'SequenceFlow'
+	{ after(grammarAccess.getSequenceFlowElementAccess().getSequenceFlowKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group__4__Impl
+	rule__SequenceFlowElement__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getGroup_4()); }
+	(rule__SequenceFlowElement__Group_4__0)?
+	{ after(grammarAccess.getSequenceFlowElementAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getSequenceFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SequenceFlowElement__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group_4__0__Impl
+	rule__SequenceFlowElement__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getWithKeyword_4_0()); }
+	'with'
+	{ after(grammarAccess.getSequenceFlowElementAccess().getWithKeyword_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group_4__1__Impl
+	rule__SequenceFlowElement__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getExpressionKeyword_4_1()); }
+	'expression'
+	{ after(grammarAccess.getSequenceFlowElementAccess().getExpressionKeyword_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group_4__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group_4__2__Impl
+	rule__SequenceFlowElement__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group_4__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group_4__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__SequenceFlowElement__Group_4__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__Group_4__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getSequenceFlowElementAccess().getExpressionAssignment_4_3()); }
+	(rule__SequenceFlowElement__ExpressionAssignment_4_3)
+	{ after(grammarAccess.getSequenceFlowElementAccess().getExpressionAssignment_4_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExternalTopic__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalTopic__Group__0__Impl
+	rule__ExternalTopic__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalTopic__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalTopicAccess().getExternalTopicKeyword_0()); }
+	'ExternalTopic'
+	{ after(grammarAccess.getExternalTopicAccess().getExternalTopicKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalTopic__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalTopic__Group__1__Impl
+	rule__ExternalTopic__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalTopic__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalTopicAccess().getNameAssignment_1()); }
+	(rule__ExternalTopic__NameAssignment_1)
+	{ after(grammarAccess.getExternalTopicAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalTopic__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalTopic__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalTopic__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalTopicAccess().getDECLARATION_FINISHEDTerminalRuleCall_2()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getExternalTopicAccess().getDECLARATION_FINISHEDTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StringVariable__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__0__Impl
+	rule__StringVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getStringKeyword_0()); }
+	'String'
+	{ after(grammarAccess.getStringVariableAccess().getStringKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__1__Impl
+	rule__StringVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getNameAssignment_1()); }
+	(rule__StringVariable__NameAssignment_1)
+	{ after(grammarAccess.getStringVariableAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__2__Impl
+	rule__StringVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getWithKeyword_2()); }
+	'with'
+	{ after(grammarAccess.getStringVariableAccess().getWithKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__3__Impl
+	rule__StringVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getProposalsKeyword_3()); }
+	'proposals'
+	{ after(grammarAccess.getStringVariableAccess().getProposalsKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__4__Impl
+	rule__StringVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getASSOCIATIONTerminalRuleCall_4()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getStringVariableAccess().getASSOCIATIONTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__5__Impl
+	rule__StringVariable__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getLIST_OPENTerminalRuleCall_5()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getStringVariableAccess().getLIST_OPENTerminalRuleCall_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__6__Impl
+	rule__StringVariable__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getGroup_6()); }
+	(rule__StringVariable__Group_6__0)?
+	{ after(grammarAccess.getStringVariableAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__7__Impl
+	rule__StringVariable__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getStringVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getStringVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StringVariable__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group_6__0__Impl
+	rule__StringVariable__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_0()); }
+	(rule__StringVariable__ProposalsAssignment_6_0)
+	{ after(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getGroup_6_1()); }
+	(rule__StringVariable__Group_6_1__0)*
+	{ after(grammarAccess.getStringVariableAccess().getGroup_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StringVariable__Group_6_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group_6_1__0__Impl
+	rule__StringVariable__Group_6_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group_6_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getStringVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group_6_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariable__Group_6_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__Group_6_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_1_1()); }
+	(rule__StringVariable__ProposalsAssignment_6_1_1)
+	{ after(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntVariable__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__0__Impl
+	rule__IntVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getIntegerKeyword_0()); }
+	'Integer'
+	{ after(grammarAccess.getIntVariableAccess().getIntegerKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__1__Impl
+	rule__IntVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getNameAssignment_1()); }
+	(rule__IntVariable__NameAssignment_1)
+	{ after(grammarAccess.getIntVariableAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__2__Impl
+	rule__IntVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getWithKeyword_2()); }
+	'with'
+	{ after(grammarAccess.getIntVariableAccess().getWithKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__3__Impl
+	rule__IntVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getProposalsKeyword_3()); }
+	'proposals'
+	{ after(grammarAccess.getIntVariableAccess().getProposalsKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__4__Impl
+	rule__IntVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getASSOCIATIONTerminalRuleCall_4()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getIntVariableAccess().getASSOCIATIONTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__5__Impl
+	rule__IntVariable__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getLIST_OPENTerminalRuleCall_5()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getIntVariableAccess().getLIST_OPENTerminalRuleCall_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__6__Impl
+	rule__IntVariable__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getGroup_6()); }
+	(rule__IntVariable__Group_6__0)?
+	{ after(grammarAccess.getIntVariableAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__7__Impl
+	rule__IntVariable__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getIntVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getIntVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntVariable__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group_6__0__Impl
+	rule__IntVariable__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_0()); }
+	(rule__IntVariable__ProposalsAssignment_6_0)
+	{ after(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getGroup_6_1()); }
+	(rule__IntVariable__Group_6_1__0)*
+	{ after(grammarAccess.getIntVariableAccess().getGroup_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntVariable__Group_6_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group_6_1__0__Impl
+	rule__IntVariable__Group_6_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group_6_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getIntVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group_6_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariable__Group_6_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__Group_6_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_1_1()); }
+	(rule__IntVariable__ProposalsAssignment_6_1_1)
+	{ after(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanVariable__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__0__Impl
+	rule__BooleanVariable__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getBooleanKeyword_0()); }
+	'Boolean'
+	{ after(grammarAccess.getBooleanVariableAccess().getBooleanKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__1__Impl
+	rule__BooleanVariable__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getNameAssignment_1()); }
+	(rule__BooleanVariable__NameAssignment_1)
+	{ after(grammarAccess.getBooleanVariableAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__2__Impl
+	rule__BooleanVariable__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getWithKeyword_2()); }
+	'with'
+	{ after(grammarAccess.getBooleanVariableAccess().getWithKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__3__Impl
+	rule__BooleanVariable__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getProposalsKeyword_3()); }
+	'proposals'
+	{ after(grammarAccess.getBooleanVariableAccess().getProposalsKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__4__Impl
+	rule__BooleanVariable__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getASSOCIATIONTerminalRuleCall_4()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getBooleanVariableAccess().getASSOCIATIONTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__5__Impl
+	rule__BooleanVariable__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getLIST_OPENTerminalRuleCall_5()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getBooleanVariableAccess().getLIST_OPENTerminalRuleCall_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__6__Impl
+	rule__BooleanVariable__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getGroup_6()); }
+	(rule__BooleanVariable__Group_6__0)?
+	{ after(grammarAccess.getBooleanVariableAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__7__Impl
+	rule__BooleanVariable__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getBooleanVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getBooleanVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanVariable__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group_6__0__Impl
+	rule__BooleanVariable__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_0()); }
+	(rule__BooleanVariable__ProposalsAssignment_6_0)
+	{ after(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getGroup_6_1()); }
+	(rule__BooleanVariable__Group_6_1__0)*
+	{ after(grammarAccess.getBooleanVariableAccess().getGroup_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanVariable__Group_6_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group_6_1__0__Impl
+	rule__BooleanVariable__Group_6_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group_6_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getBooleanVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group_6_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariable__Group_6_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__Group_6_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_1_1()); }
+	(rule__BooleanVariable__ProposalsAssignment_6_1_1)
+	{ after(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_1_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().getNameAssignment_1()); }
+	(rule__Loop__NameAssignment_1)
+	{ after(grammarAccess.getLoopAccess().getNameAssignment_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().getStartsKeyword_2()); }
+	'starts'
+	{ after(grammarAccess.getLoopAccess().getStartsKeyword_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().getWithKeyword_3()); }
+	'with'
+	{ after(grammarAccess.getLoopAccess().getWithKeyword_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().getStartAssignment_4()); }
+	(rule__Loop__StartAssignment_4)
+	{ after(grammarAccess.getLoopAccess().getStartAssignment_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().getFollowsKeyword_5()); }
+	'follows'
+	{ after(grammarAccess.getLoopAccess().getFollowsKeyword_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().getByKeyword_6()); }
+	'by'
+	{ after(grammarAccess.getLoopAccess().getByKeyword_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().getFollowerAssignment_7()); }
+	(rule__Loop__FollowerAssignment_7)
+	{ after(grammarAccess.getLoopAccess().getFollowerAssignment_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__8__Impl
+	rule__Loop__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getEndsKeyword_8()); }
+	'ends'
+	{ after(grammarAccess.getLoopAccess().getEndsKeyword_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__9__Impl
+	rule__Loop__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getWithKeyword_9()); }
+	'with'
+	{ after(grammarAccess.getLoopAccess().getWithKeyword_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__10
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__10__Impl
+	rule__Loop__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__10__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getEndAssignment_10()); }
+	(rule__Loop__EndAssignment_10)
+	{ after(grammarAccess.getLoopAccess().getEndAssignment_10()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__11
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__11__Impl
+	rule__Loop__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__11__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getHasKeyword_11()); }
+	'has'
+	{ after(grammarAccess.getLoopAccess().getHasKeyword_11()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__12
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__12__Impl
+	rule__Loop__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__12__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getComplexityKeyword_12()); }
+	'complexity'
+	{ after(grammarAccess.getLoopAccess().getComplexityKeyword_12()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__13
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__13__Impl
+	rule__Loop__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__13__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getComplexityAssignment_13()); }
+	(rule__Loop__ComplexityAssignment_13)
+	{ after(grammarAccess.getLoopAccess().getComplexityAssignment_13()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__14
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__14__Impl
+	rule__Loop__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__14__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getPassedKeyword_14()); }
+	'passed'
+	{ after(grammarAccess.getLoopAccess().getPassedKeyword_14()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__15
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__15__Impl
+	rule__Loop__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__15__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getASSOCIATIONTerminalRuleCall_15()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getLoopAccess().getASSOCIATIONTerminalRuleCall_15()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__16
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__16__Impl
+	rule__Loop__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__16__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getLIST_OPENTerminalRuleCall_16()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getLoopAccess().getLIST_OPENTerminalRuleCall_16()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__17
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__17__Impl
+	rule__Loop__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__17__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getGroup_17()); }
+	(rule__Loop__Group_17__0)?
+	{ after(grammarAccess.getLoopAccess().getGroup_17()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__18
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__18__Impl
+	rule__Loop__Group__19
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__18__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getLIST_CLOSEDTerminalRuleCall_18()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getLoopAccess().getLIST_CLOSEDTerminalRuleCall_18()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__19
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group__19__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group__19__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getDECLARATION_FINISHEDTerminalRuleCall_19()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getLoopAccess().getDECLARATION_FINISHEDTerminalRuleCall_19()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group_17__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group_17__0__Impl
+	rule__Loop__Group_17__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_17__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_0()); }
+	(rule__Loop__FrequenciesAssignment_17_0)
+	{ after(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_17__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group_17__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_17__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getGroup_17_1()); }
+	(rule__Loop__Group_17_1__0)*
+	{ after(grammarAccess.getLoopAccess().getGroup_17_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Loop__Group_17_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group_17_1__0__Impl
+	rule__Loop__Group_17_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_17_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getSEPARATORTerminalRuleCall_17_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getLoopAccess().getSEPARATORTerminalRuleCall_17_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_17_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Loop__Group_17_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__Group_17_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_1_1()); }
+	(rule__Loop__FrequenciesAssignment_17_1_1)
+	{ after(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__0__Impl
+	rule__Flow__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getFlowKeyword_0()); }
+	'Flow'
+	{ after(grammarAccess.getFlowAccess().getFlowKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__1__Impl
+	rule__Flow__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getNameAssignment_1()); }
+	(rule__Flow__NameAssignment_1)
+	{ after(grammarAccess.getFlowAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__2__Impl
+	rule__Flow__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getForKeyword_2()); }
+	'for'
+	{ after(grammarAccess.getFlowAccess().getForKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__3__Impl
+	rule__Flow__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getBpmnReferenceAssignment_3()); }
+	(rule__Flow__BpmnReferenceAssignment_3)
+	{ after(grammarAccess.getFlowAccess().getBpmnReferenceAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__4__Impl
+	rule__Flow__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getWithKeyword_4()); }
+	'with'
+	{ after(grammarAccess.getFlowAccess().getWithKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__5__Impl
+	rule__Flow__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getElementsKeyword_5()); }
+	'elements'
+	{ after(grammarAccess.getFlowAccess().getElementsKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__6__Impl
+	rule__Flow__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_6()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__7__Impl
+	rule__Flow__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_7()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__8__Impl
+	rule__Flow__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getGroup_8()); }
+	(rule__Flow__Group_8__0)?
+	{ after(grammarAccess.getFlowAccess().getGroup_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__9__Impl
+	rule__Flow__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_9()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__10
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__10__Impl
+	rule__Flow__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__10__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getGroup_10()); }
+	(rule__Flow__Group_10__0)?
+	{ after(grammarAccess.getFlowAccess().getGroup_10()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__11
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group__11__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group__11__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getDECLARATION_FINISHEDTerminalRuleCall_11()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getFlowAccess().getDECLARATION_FINISHEDTerminalRuleCall_11()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group_8__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_8__0__Impl
+	rule__Flow__Group_8__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_8__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getInclElementsAssignment_8_0()); }
+	(rule__Flow__InclElementsAssignment_8_0)
+	{ after(grammarAccess.getFlowAccess().getInclElementsAssignment_8_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_8__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_8__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_8__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getGroup_8_1()); }
+	(rule__Flow__Group_8_1__0)*
+	{ after(grammarAccess.getFlowAccess().getGroup_8_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group_8_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_8_1__0__Impl
+	rule__Flow__Group_8_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_8_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_8_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_8_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_8_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_8_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_8_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getInclElementsAssignment_8_1_1()); }
+	(rule__Flow__InclElementsAssignment_8_1_1)
+	{ after(grammarAccess.getFlowAccess().getInclElementsAssignment_8_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group_10__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10__0__Impl
+	rule__Flow__Group_10__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getWithoutKeyword_10_0()); }
+	'without'
+	{ after(grammarAccess.getFlowAccess().getWithoutKeyword_10_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10__1__Impl
+	rule__Flow__Group_10__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getElementsKeyword_10_1()); }
+	'elements'
+	{ after(grammarAccess.getFlowAccess().getElementsKeyword_10_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10__2__Impl
+	rule__Flow__Group_10__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_10_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_10_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10__3__Impl
+	rule__Flow__Group_10__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_10_3()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_10_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10__4__Impl
+	rule__Flow__Group_10__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getGroup_10_4()); }
+	(rule__Flow__Group_10_4__0)?
+	{ after(grammarAccess.getFlowAccess().getGroup_10_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_10_5()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_10_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group_10_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10_4__0__Impl
+	rule__Flow__Group_10_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_0()); }
+	(rule__Flow__ExclElementsAssignment_10_4_0)
+	{ after(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getGroup_10_4_1()); }
+	(rule__Flow__Group_10_4_1__0)*
+	{ after(grammarAccess.getFlowAccess().getGroup_10_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Flow__Group_10_4_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10_4_1__0__Impl
+	rule__Flow__Group_10_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10_4_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_10_4_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_10_4_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10_4_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Flow__Group_10_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__Group_10_4_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_1_1()); }
+	(rule__Flow__ExclElementsAssignment_10_4_1_1)
+	{ after(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Test__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__0__Impl
+	rule__Test__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getTestKeyword_0()); }
+	'Test'
+	{ after(grammarAccess.getTestAccess().getTestKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__1__Impl
+	rule__Test__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getNameAssignment_1()); }
+	(rule__Test__NameAssignment_1)
+	{ after(grammarAccess.getTestAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__2__Impl
+	rule__Test__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getForKeyword_2()); }
+	'for'
+	{ after(grammarAccess.getTestAccess().getForKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__3__Impl
+	rule__Test__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getFlowReferenceAssignment_3()); }
+	(rule__Test__FlowReferenceAssignment_3)
+	{ after(grammarAccess.getTestAccess().getFlowReferenceAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__4__Impl
+	rule__Test__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getGroup_4()); }
+	(rule__Test__Group_4__0)?
+	{ after(grammarAccess.getTestAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__5__Impl
+	rule__Test__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getGroup_5()); }
+	(rule__Test__Group_5__0)?
+	{ after(grammarAccess.getTestAccess().getGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__6__Impl
+	rule__Test__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getEndCheckAssignment_6()); }
+	(rule__Test__EndCheckAssignment_6)?
+	{ after(grammarAccess.getTestAccess().getEndCheckAssignment_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__7__Impl
+	rule__Test__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getGroup_7()); }
+	(rule__Test__Group_7__0)?
+	{ after(grammarAccess.getTestAccess().getGroup_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getTestAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Test__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_4__0__Impl
+	rule__Test__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getWithKeyword_4_0()); }
+	'with'
+	{ after(grammarAccess.getTestAccess().getWithKeyword_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_4__1__Impl
+	rule__Test__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getPriorityKeyword_4_1()); }
+	'priority'
+	{ after(grammarAccess.getTestAccess().getPriorityKeyword_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_4__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_4__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_4__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getPriorityAssignment_4_2()); }
+	(rule__Test__PriorityAssignment_4_2)
+	{ after(grammarAccess.getTestAccess().getPriorityAssignment_4_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Test__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_5__0__Impl
+	rule__Test__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getDeclarationsAssignment_5_0()); }
+	(rule__Test__DeclarationsAssignment_5_0)
+	{ after(grammarAccess.getTestAccess().getDeclarationsAssignment_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getGroup_5_1()); }
+	(rule__Test__Group_5_1__0)*
+	{ after(grammarAccess.getTestAccess().getGroup_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Test__Group_5_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_5_1__0__Impl
+	rule__Test__Group_5_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_5_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_5_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_5_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_5_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_5_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_5_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getDeclarationsAssignment_5_1_1()); }
+	(rule__Test__DeclarationsAssignment_5_1_1)
+	{ after(grammarAccess.getTestAccess().getDeclarationsAssignment_5_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Test__Group_7__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7__0__Impl
+	rule__Test__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getWithKeyword_7_0()); }
+	'with'
+	{ after(grammarAccess.getTestAccess().getWithKeyword_7_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7__1__Impl
+	rule__Test__Group_7__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getMocksKeyword_7_1()); }
+	'mocks'
+	{ after(grammarAccess.getTestAccess().getMocksKeyword_7_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7__2__Impl
+	rule__Test__Group_7__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getASSOCIATIONTerminalRuleCall_7_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getTestAccess().getASSOCIATIONTerminalRuleCall_7_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7__3__Impl
+	rule__Test__Group_7__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getLIST_OPENTerminalRuleCall_7_3()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getTestAccess().getLIST_OPENTerminalRuleCall_7_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7__4__Impl
+	rule__Test__Group_7__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getGroup_7_4()); }
+	(rule__Test__Group_7_4__0)?
+	{ after(grammarAccess.getTestAccess().getGroup_7_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getLIST_CLOSEDTerminalRuleCall_7_5()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getTestAccess().getLIST_CLOSEDTerminalRuleCall_7_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Test__Group_7_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7_4__0__Impl
+	rule__Test__Group_7_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getMocksAssignment_7_4_0()); }
+	(rule__Test__MocksAssignment_7_4_0)
+	{ after(grammarAccess.getTestAccess().getMocksAssignment_7_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getGroup_7_4_1()); }
+	(rule__Test__Group_7_4_1__0)*
+	{ after(grammarAccess.getTestAccess().getGroup_7_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Test__Group_7_4_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7_4_1__0__Impl
+	rule__Test__Group_7_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7_4_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_7_4_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_7_4_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7_4_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__Test__Group_7_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__Group_7_4_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTestAccess().getMocksAssignment_7_4_1_1()); }
+	(rule__Test__MocksAssignment_7_4_1_1)
+	{ after(grammarAccess.getTestAccess().getMocksAssignment_7_4_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VariableDeclarations__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group__0__Impl
+	rule__VariableDeclarations__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getWithKeyword_0()); }
+	'with'
+	{ after(grammarAccess.getVariableDeclarationsAccess().getWithKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group__1__Impl
+	rule__VariableDeclarations__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getVariablesKeyword_1()); }
+	'variables'
+	{ after(grammarAccess.getVariableDeclarationsAccess().getVariablesKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group__2__Impl
+	rule__VariableDeclarations__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getForKeyword_2()); }
+	'for'
+	{ after(grammarAccess.getVariableDeclarationsAccess().getForKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group__3__Impl
+	rule__VariableDeclarations__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceAssignment_3()); }
+	(rule__VariableDeclarations__TaskReferenceAssignment_3)
+	{ after(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group__4__Impl
+	rule__VariableDeclarations__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getASSOCIATIONTerminalRuleCall_4()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getVariableDeclarationsAccess().getASSOCIATIONTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group__5__Impl
+	rule__VariableDeclarations__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getLIST_OPENTerminalRuleCall_5()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getVariableDeclarationsAccess().getLIST_OPENTerminalRuleCall_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group__6__Impl
+	rule__VariableDeclarations__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getGroup_6()); }
+	(rule__VariableDeclarations__Group_6__0)?
+	{ after(grammarAccess.getVariableDeclarationsAccess().getGroup_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getLIST_CLOSEDTerminalRuleCall_7()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getVariableDeclarationsAccess().getLIST_CLOSEDTerminalRuleCall_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VariableDeclarations__Group_6__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group_6__0__Impl
+	rule__VariableDeclarations__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group_6__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_0()); }
+	(rule__VariableDeclarations__VariablesAssignment_6_0)
+	{ after(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group_6__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group_6__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group_6__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getGroup_6_1()); }
+	(rule__VariableDeclarations__Group_6_1__0)*
+	{ after(grammarAccess.getVariableDeclarationsAccess().getGroup_6_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__VariableDeclarations__Group_6_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group_6_1__0__Impl
+	rule__VariableDeclarations__Group_6_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group_6_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getSEPARATORTerminalRuleCall_6_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getVariableDeclarationsAccess().getSEPARATORTerminalRuleCall_6_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group_6_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__VariableDeclarations__Group_6_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__Group_6_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_1_1()); }
+	(rule__VariableDeclarations__VariablesAssignment_6_1_1)
+	{ after(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndChecks__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group__0__Impl
+	rule__EndChecks__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getWithKeyword_0()); }
+	'with'
+	{ after(grammarAccess.getEndChecksAccess().getWithKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group__1__Impl
+	rule__EndChecks__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getCheckKeyword_1()); }
+	'check'
+	{ after(grammarAccess.getEndChecksAccess().getCheckKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group__2__Impl
+	rule__EndChecks__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getEndChecksAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group__3__Impl
+	rule__EndChecks__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getLIST_OPENTerminalRuleCall_3()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getEndChecksAccess().getLIST_OPENTerminalRuleCall_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group__4__Impl
+	rule__EndChecks__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getGroup_4()); }
+	(rule__EndChecks__Group_4__0)?
+	{ after(grammarAccess.getEndChecksAccess().getGroup_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getLIST_CLOSEDTerminalRuleCall_5()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getEndChecksAccess().getLIST_CLOSEDTerminalRuleCall_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndChecks__Group_4__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group_4__0__Impl
+	rule__EndChecks__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group_4__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_0()); }
+	(rule__EndChecks__EndChecksAssignment_4_0)
+	{ after(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group_4__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group_4__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getGroup_4_1()); }
+	(rule__EndChecks__Group_4_1__0)*
+	{ after(grammarAccess.getEndChecksAccess().getGroup_4_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__EndChecks__Group_4_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group_4_1__0__Impl
+	rule__EndChecks__Group_4_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group_4_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getSEPARATORTerminalRuleCall_4_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getEndChecksAccess().getSEPARATORTerminalRuleCall_4_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group_4_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__EndChecks__Group_4_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__Group_4_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_1_1()); }
+	(rule__EndChecks__EndChecksAssignment_4_1_1)
+	{ after(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StringVariableDeclaration__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableDeclaration__Group__0__Impl
+	rule__StringVariableDeclaration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableDeclaration__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableDeclarationAccess().getKeyAssignment_0()); }
+	(rule__StringVariableDeclaration__KeyAssignment_0)
+	{ after(grammarAccess.getStringVariableDeclarationAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableDeclaration__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableDeclaration__Group__1__Impl
+	rule__StringVariableDeclaration__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableDeclaration__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableDeclarationAccess().getEqualsSignKeyword_1()); }
+	'='
+	{ after(grammarAccess.getStringVariableDeclarationAccess().getEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableDeclaration__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableDeclaration__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableDeclaration__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableDeclarationAccess().getValueAssignment_2()); }
+	(rule__StringVariableDeclaration__ValueAssignment_2)
+	{ after(grammarAccess.getStringVariableDeclarationAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntVariableDeclaration__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableDeclaration__Group__0__Impl
+	rule__IntVariableDeclaration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableDeclaration__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableDeclarationAccess().getKeyAssignment_0()); }
+	(rule__IntVariableDeclaration__KeyAssignment_0)
+	{ after(grammarAccess.getIntVariableDeclarationAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableDeclaration__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableDeclaration__Group__1__Impl
+	rule__IntVariableDeclaration__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableDeclaration__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableDeclarationAccess().getEqualsSignKeyword_1()); }
+	'='
+	{ after(grammarAccess.getIntVariableDeclarationAccess().getEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableDeclaration__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableDeclaration__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableDeclaration__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableDeclarationAccess().getValueAssignment_2()); }
+	(rule__IntVariableDeclaration__ValueAssignment_2)
+	{ after(grammarAccess.getIntVariableDeclarationAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanVariableDeclaration__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableDeclaration__Group__0__Impl
+	rule__BooleanVariableDeclaration__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableDeclaration__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableDeclarationAccess().getKeyAssignment_0()); }
+	(rule__BooleanVariableDeclaration__KeyAssignment_0)
+	{ after(grammarAccess.getBooleanVariableDeclarationAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableDeclaration__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableDeclaration__Group__1__Impl
+	rule__BooleanVariableDeclaration__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableDeclaration__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableDeclarationAccess().getEqualsSignKeyword_1()); }
+	'='
+	{ after(grammarAccess.getBooleanVariableDeclarationAccess().getEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableDeclaration__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableDeclaration__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableDeclaration__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableDeclarationAccess().getValueAssignment_2()); }
+	(rule__BooleanVariableDeclaration__ValueAssignment_2)
+	{ after(grammarAccess.getBooleanVariableDeclarationAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StringVariableEquals__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableEquals__Group__0__Impl
+	rule__StringVariableEquals__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableEquals__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableEqualsAccess().getKeyAssignment_0()); }
+	(rule__StringVariableEquals__KeyAssignment_0)
+	{ after(grammarAccess.getStringVariableEqualsAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableEquals__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableEquals__Group__1__Impl
+	rule__StringVariableEquals__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableEquals__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); }
+	'=='
+	{ after(grammarAccess.getStringVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableEquals__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableEquals__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableEquals__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableEqualsAccess().getValueAssignment_2()); }
+	(rule__StringVariableEquals__ValueAssignment_2)
+	{ after(grammarAccess.getStringVariableEqualsAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntVariableEquals__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableEquals__Group__0__Impl
+	rule__IntVariableEquals__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableEquals__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableEqualsAccess().getKeyAssignment_0()); }
+	(rule__IntVariableEquals__KeyAssignment_0)
+	{ after(grammarAccess.getIntVariableEqualsAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableEquals__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableEquals__Group__1__Impl
+	rule__IntVariableEquals__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableEquals__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); }
+	'=='
+	{ after(grammarAccess.getIntVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableEquals__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableEquals__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableEquals__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableEqualsAccess().getValueAssignment_2()); }
+	(rule__IntVariableEquals__ValueAssignment_2)
+	{ after(grammarAccess.getIntVariableEqualsAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanVariableEquals__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableEquals__Group__0__Impl
+	rule__BooleanVariableEquals__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableEquals__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableEqualsAccess().getKeyAssignment_0()); }
+	(rule__BooleanVariableEquals__KeyAssignment_0)
+	{ after(grammarAccess.getBooleanVariableEqualsAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableEquals__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableEquals__Group__1__Impl
+	rule__BooleanVariableEquals__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableEquals__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); }
+	'=='
+	{ after(grammarAccess.getBooleanVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableEquals__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableEquals__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableEquals__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableEqualsAccess().getValueAssignment_2()); }
+	(rule__BooleanVariableEquals__ValueAssignment_2)
+	{ after(grammarAccess.getBooleanVariableEqualsAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StringVariableNotEquals__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableNotEquals__Group__0__Impl
+	rule__StringVariableNotEquals__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableNotEquals__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableNotEqualsAccess().getKeyAssignment_0()); }
+	(rule__StringVariableNotEquals__KeyAssignment_0)
+	{ after(grammarAccess.getStringVariableNotEqualsAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableNotEquals__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableNotEquals__Group__1__Impl
+	rule__StringVariableNotEquals__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableNotEquals__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); }
+	'!='
+	{ after(grammarAccess.getStringVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableNotEquals__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringVariableNotEquals__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableNotEquals__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringVariableNotEqualsAccess().getValueAssignment_2()); }
+	(rule__StringVariableNotEquals__ValueAssignment_2)
+	{ after(grammarAccess.getStringVariableNotEqualsAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntVariableNotEquals__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableNotEquals__Group__0__Impl
+	rule__IntVariableNotEquals__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableNotEquals__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableNotEqualsAccess().getKeyAssignment_0()); }
+	(rule__IntVariableNotEquals__KeyAssignment_0)
+	{ after(grammarAccess.getIntVariableNotEqualsAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableNotEquals__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableNotEquals__Group__1__Impl
+	rule__IntVariableNotEquals__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableNotEquals__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); }
+	'!='
+	{ after(grammarAccess.getIntVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableNotEquals__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntVariableNotEquals__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableNotEquals__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntVariableNotEqualsAccess().getValueAssignment_2()); }
+	(rule__IntVariableNotEquals__ValueAssignment_2)
+	{ after(grammarAccess.getIntVariableNotEqualsAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanVariableNotEquals__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableNotEquals__Group__0__Impl
+	rule__BooleanVariableNotEquals__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableNotEquals__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyAssignment_0()); }
+	(rule__BooleanVariableNotEquals__KeyAssignment_0)
+	{ after(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableNotEquals__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableNotEquals__Group__1__Impl
+	rule__BooleanVariableNotEquals__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableNotEquals__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); }
+	'!='
+	{ after(grammarAccess.getBooleanVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableNotEquals__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanVariableNotEquals__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableNotEquals__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanVariableNotEqualsAccess().getValueAssignment_2()); }
+	(rule__BooleanVariableNotEquals__ValueAssignment_2)
+	{ after(grammarAccess.getBooleanVariableNotEqualsAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExternalServiceMock__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group__0__Impl
+	rule__ExternalServiceMock__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getExternalServiceMockKeyword_0()); }
+	'ExternalServiceMock'
+	{ after(grammarAccess.getExternalServiceMockAccess().getExternalServiceMockKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group__1__Impl
+	rule__ExternalServiceMock__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getNameAssignment_1()); }
+	(rule__ExternalServiceMock__NameAssignment_1)
+	{ after(grammarAccess.getExternalServiceMockAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group__2__Impl
+	rule__ExternalServiceMock__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getForKeyword_2()); }
+	'for'
+	{ after(grammarAccess.getExternalServiceMockAccess().getForKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group__3__Impl
+	rule__ExternalServiceMock__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getTopicKeyword_3()); }
+	'topic'
+	{ after(grammarAccess.getExternalServiceMockAccess().getTopicKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group__4__Impl
+	rule__ExternalServiceMock__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getExternalTopicAssignment_4()); }
+	(rule__ExternalServiceMock__ExternalTopicAssignment_4)
+	{ after(grammarAccess.getExternalServiceMockAccess().getExternalTopicAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group__5__Impl
+	rule__ExternalServiceMock__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getGroup_5()); }
+	(rule__ExternalServiceMock__Group_5__0)?
+	{ after(grammarAccess.getExternalServiceMockAccess().getGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_6()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getExternalServiceMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExternalServiceMock__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group_5__0__Impl
+	rule__ExternalServiceMock__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_0()); }
+	(rule__ExternalServiceMock__MockingRulesAssignment_5_0)
+	{ after(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getGroup_5_1()); }
+	(rule__ExternalServiceMock__Group_5_1__0)*
+	{ after(grammarAccess.getExternalServiceMockAccess().getGroup_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ExternalServiceMock__Group_5_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group_5_1__0__Impl
+	rule__ExternalServiceMock__Group_5_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group_5_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getSEPARATORTerminalRuleCall_5_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getExternalServiceMockAccess().getSEPARATORTerminalRuleCall_5_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group_5_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ExternalServiceMock__Group_5_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__Group_5_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_1_1()); }
+	(rule__ExternalServiceMock__MockingRulesAssignment_5_1_1)
+	{ after(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DelegateMock__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__0__Impl
+	rule__DelegateMock__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getDelegateMockKeyword_0()); }
+	'DelegateMock'
+	{ after(grammarAccess.getDelegateMockAccess().getDelegateMockKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__1__Impl
+	rule__DelegateMock__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getNameAssignment_1()); }
+	(rule__DelegateMock__NameAssignment_1)
+	{ after(grammarAccess.getDelegateMockAccess().getNameAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__2__Impl
+	rule__DelegateMock__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getForKeyword_2()); }
+	'for'
+	{ after(grammarAccess.getDelegateMockAccess().getForKeyword_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__3__Impl
+	rule__DelegateMock__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceAssignment_3()); }
+	(rule__DelegateMock__ServiceTaskReferenceAssignment_3)
+	{ after(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceAssignment_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__4__Impl
+	rule__DelegateMock__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getWithKeyword_4()); }
+	'with'
+	{ after(grammarAccess.getDelegateMockAccess().getWithKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__5__Impl
+	rule__DelegateMock__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getDelegateKeyword_5()); }
+	'delegate'
+	{ after(grammarAccess.getDelegateMockAccess().getDelegateKeyword_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__6__Impl
+	rule__DelegateMock__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getDelegateClassAssignment_6()); }
+	(rule__DelegateMock__DelegateClassAssignment_6)
+	{ after(grammarAccess.getDelegateMockAccess().getDelegateClassAssignment_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__7__Impl
+	rule__DelegateMock__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getGroup_7()); }
+	(rule__DelegateMock__Group_7__0)?
+	{ after(grammarAccess.getDelegateMockAccess().getGroup_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group__8__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+	RULE_DECLARATION_FINISHED
+	{ after(grammarAccess.getDelegateMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DelegateMock__Group_7__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group_7__0__Impl
+	rule__DelegateMock__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group_7__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_0()); }
+	(rule__DelegateMock__ManualMocksAssignment_7_0)
+	{ after(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group_7__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group_7__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getGroup_7_1()); }
+	(rule__DelegateMock__Group_7_1__0)*
+	{ after(grammarAccess.getDelegateMockAccess().getGroup_7_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__DelegateMock__Group_7_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group_7_1__0__Impl
+	rule__DelegateMock__Group_7_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group_7_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getSEPARATORTerminalRuleCall_7_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getDelegateMockAccess().getSEPARATORTerminalRuleCall_7_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group_7_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DelegateMock__Group_7_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__Group_7_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_1_1()); }
+	(rule__DelegateMock__ManualMocksAssignment_7_1_1)
+	{ after(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MockingRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__0__Impl
+	rule__MockingRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getWithKeyword_0()); }
+	'with'
+	{ after(grammarAccess.getMockingRuleAccess().getWithKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__1__Impl
+	rule__MockingRule__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getRuleKeyword_1()); }
+	'rule'
+	{ after(grammarAccess.getMockingRuleAccess().getRuleKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__2__Impl
+	rule__MockingRule__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getASSOCIATIONTerminalRuleCall_2()); }
+	RULE_ASSOCIATION
+	{ after(grammarAccess.getMockingRuleAccess().getASSOCIATIONTerminalRuleCall_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__3__Impl
+	rule__MockingRule__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getIfKeyword_3()); }
+	'if'
+	{ after(grammarAccess.getMockingRuleAccess().getIfKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__4__Impl
+	rule__MockingRule__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_4()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__5__Impl
+	rule__MockingRule__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getGroup_5()); }
+	(rule__MockingRule__Group_5__0)?
+	{ after(grammarAccess.getMockingRuleAccess().getGroup_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__6__Impl
+	rule__MockingRule__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_6()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__7__Impl
+	rule__MockingRule__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__7__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getSetKeyword_7()); }
+	'set'
+	{ after(grammarAccess.getMockingRuleAccess().getSetKeyword_7()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__8
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__8__Impl
+	rule__MockingRule__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__8__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_8()); }
+	RULE_LIST_OPEN
+	{ after(grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_8()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__9
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__9__Impl
+	rule__MockingRule__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__9__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getGroup_9()); }
+	(rule__MockingRule__Group_9__0)?
+	{ after(grammarAccess.getMockingRuleAccess().getGroup_9()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__10
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group__10__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group__10__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_10()); }
+	RULE_LIST_CLOSED
+	{ after(grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_10()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MockingRule__Group_5__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group_5__0__Impl
+	rule__MockingRule__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_5__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_0()); }
+	(rule__MockingRule__ComparisonsAssignment_5_0)
+	{ after(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_5__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_5__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getGroup_5_1()); }
+	(rule__MockingRule__Group_5_1__0)*
+	{ after(grammarAccess.getMockingRuleAccess().getGroup_5_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MockingRule__Group_5_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group_5_1__0__Impl
+	rule__MockingRule__Group_5_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_5_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_5_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_5_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_5_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group_5_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_5_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_1_1()); }
+	(rule__MockingRule__ComparisonsAssignment_5_1_1)
+	{ after(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MockingRule__Group_9__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group_9__0__Impl
+	rule__MockingRule__Group_9__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_9__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_0()); }
+	(rule__MockingRule__VariablesAssignment_9_0)
+	{ after(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_9__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group_9__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_9__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getGroup_9_1()); }
+	(rule__MockingRule__Group_9_1__0)*
+	{ after(grammarAccess.getMockingRuleAccess().getGroup_9_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__MockingRule__Group_9_1__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group_9_1__0__Impl
+	rule__MockingRule__Group_9_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_9_1__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_9_1_0()); }
+	RULE_SEPARATOR
+	{ after(grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_9_1_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_9_1__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__MockingRule__Group_9_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__Group_9_1__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_1_1()); }
+	(rule__MockingRule__VariablesAssignment_9_1_1)
+	{ after(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_1_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ManualMock__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualMock__Group__0__Impl
+	rule__ManualMock__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualMockAccess().getWithKeyword_0()); }
+	'with'
+	{ after(grammarAccess.getManualMockAccess().getWithKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualMock__Group__1__Impl
+	rule__ManualMock__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualMockAccess().getManualKeyword_1()); }
+	'manual'
+	{ after(grammarAccess.getManualMockAccess().getManualKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualMock__Group__2__Impl
+	rule__ManualMock__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualMockAccess().getServiceNameAssignment_2()); }
+	(rule__ManualMock__ServiceNameAssignment_2)
+	{ after(grammarAccess.getManualMockAccess().getServiceNameAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualMock__Group__3__Impl
+	rule__ManualMock__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualMockAccess().getByKeyword_3()); }
+	'by'
+	{ after(grammarAccess.getManualMockAccess().getByKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualMock__Group__4__Impl
+	rule__ManualMock__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualMockAccess().getSetterKeyword_4()); }
+	'setter'
+	{ after(grammarAccess.getManualMockAccess().getSetterKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ManualMock__Group__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getManualMockAccess().getSetterAssignment_5()); }
+	(rule__ManualMock__SetterAssignment_5)
+	{ after(grammarAccess.getManualMockAccess().getSetterAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__StringCompare__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringCompare__Group__0__Impl
+	rule__StringCompare__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompare__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringCompareAccess().getKeyAssignment_0()); }
+	(rule__StringCompare__KeyAssignment_0)
+	{ after(grammarAccess.getStringCompareAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompare__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringCompare__Group__1__Impl
+	rule__StringCompare__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompare__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringCompareAccess().getCompareSymbolAssignment_1()); }
+	(rule__StringCompare__CompareSymbolAssignment_1)
+	{ after(grammarAccess.getStringCompareAccess().getCompareSymbolAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompare__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__StringCompare__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompare__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getStringCompareAccess().getValueAssignment_2()); }
+	(rule__StringCompare__ValueAssignment_2)
+	{ after(grammarAccess.getStringCompareAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntCompare__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntCompare__Group__0__Impl
+	rule__IntCompare__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompare__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntCompareAccess().getKeyAssignment_0()); }
+	(rule__IntCompare__KeyAssignment_0)
+	{ after(grammarAccess.getIntCompareAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompare__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntCompare__Group__1__Impl
+	rule__IntCompare__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompare__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntCompareAccess().getCompareSymbolAssignment_1()); }
+	(rule__IntCompare__CompareSymbolAssignment_1)
+	{ after(grammarAccess.getIntCompareAccess().getCompareSymbolAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompare__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntCompare__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompare__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntCompareAccess().getValueAssignment_2()); }
+	(rule__IntCompare__ValueAssignment_2)
+	{ after(grammarAccess.getIntCompareAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanCompare__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanCompare__Group__0__Impl
+	rule__BooleanCompare__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompare__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanCompareAccess().getKeyAssignment_0()); }
+	(rule__BooleanCompare__KeyAssignment_0)
+	{ after(grammarAccess.getBooleanCompareAccess().getKeyAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompare__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanCompare__Group__1__Impl
+	rule__BooleanCompare__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompare__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanCompareAccess().getCompareSymbolAssignment_1()); }
+	(rule__BooleanCompare__CompareSymbolAssignment_1)
+	{ after(grammarAccess.getBooleanCompareAccess().getCompareSymbolAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompare__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanCompare__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompare__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanCompareAccess().getValueAssignment_2()); }
+	(rule__BooleanCompare__ValueAssignment_2)
+	{ after(grammarAccess.getBooleanCompareAccess().getValueAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Model__DeclarationsAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_0()); }
+		ruleDeclaration
+		{ after(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getBPMNDiagramAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__TestpackageAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getTestpackageSTRINGTerminalRuleCall_4_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getBPMNDiagramAccess().getTestpackageSTRINGTerminalRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__BpmnAssignment_7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getBpmnSTRINGTerminalRuleCall_7_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getBPMNDiagramAccess().getBpmnSTRINGTerminalRuleCall_7_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__KeyAssignment_10
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getKeySTRINGTerminalRuleCall_10_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getBPMNDiagramAccess().getKeySTRINGTerminalRuleCall_10_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__DmnAssignment_11_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_0_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__DmnAssignment_11_4_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_1_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__EmbeddedAssignment_12_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_0_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BPMNReference__RefAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramCrossReference_0()); }
+		(
+			{ before(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramIDTerminalRuleCall_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramIDTerminalRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStartFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getStartFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__InputVariablesAssignment_4_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0()); }
+		ruleVariableReference
+		{ after(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StartFlowElement__InputVariablesAssignment_4_4_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0()); }
+		ruleVariableReference
+		{ after(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getEndFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getEndFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getUserTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getUserTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0()); }
+		ruleVariableReference
+		{ after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0()); }
+		ruleVariableReference
+		{ after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualTaskFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getManualTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getManualTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ScriptTaskFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getScriptTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getScriptTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskFlowElement__DelegateAssignment_7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateSTRINGTerminalRuleCall_7_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateSTRINGTerminalRuleCall_7_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicExternalTopicReferenceParserRuleCall_7_0()); }
+		ruleExternalTopicReference
+		{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicExternalTopicReferenceParserRuleCall_7_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0()); }
+		ruleVariableDeclaration
+		{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0()); }
+		ruleVariableDeclaration
+		{ after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BusinessRuleTaskFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__GatewayFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getGatewayFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getGatewayFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSequenceFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getSequenceFlowElementAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SequenceFlowElement__ExpressionAssignment_4_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getSequenceFlowElementAccess().getExpressionSTRINGTerminalRuleCall_4_3_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getSequenceFlowElementAccess().getExpressionSTRINGTerminalRuleCall_4_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowElementReference__RefAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementCrossReference_0()); }
+		(
+			{ before(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementIDTerminalRuleCall_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementIDTerminalRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateServiceTaskReference__RefAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementCrossReference_0()); }
+		(
+			{ before(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementIDTerminalRuleCall_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementIDTerminalRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalTopic__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalTopicAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getExternalTopicAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalTopicReference__RefAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicCrossReference_0()); }
+		(
+			{ before(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicIDTerminalRuleCall_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicIDTerminalRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableReference__RefAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getVariableReferenceAccess().getRefVariableCrossReference_0()); }
+		(
+			{ before(grammarAccess.getVariableReferenceAccess().getRefVariableIDTerminalRuleCall_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getVariableReferenceAccess().getRefVariableIDTerminalRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getVariableReferenceAccess().getRefVariableCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getStringVariableAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__ProposalsAssignment_6_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_0_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariable__ProposalsAssignment_6_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_1_1_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getIntVariableAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__ProposalsAssignment_6_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_0_0()); }
+		RULE_INT
+		{ after(grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariable__ProposalsAssignment_6_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_1_1_0()); }
+		RULE_INT
+		{ after(grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getBooleanVariableAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__ProposalsAssignment_6_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_0_0()); }
+		ruleBoolean
+		{ after(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariable__ProposalsAssignment_6_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_1_1_0()); }
+		ruleBoolean
+		{ after(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getLoopAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getLoopAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__StartAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getLoopAccess().getStartSTRINGTerminalRuleCall_4_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getLoopAccess().getStartSTRINGTerminalRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__FollowerAssignment_7
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getLoopAccess().getFollowerSTRINGTerminalRuleCall_7_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getLoopAccess().getFollowerSTRINGTerminalRuleCall_7_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__EndAssignment_10
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getLoopAccess().getEndSTRINGTerminalRuleCall_10_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getLoopAccess().getEndSTRINGTerminalRuleCall_10_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__ComplexityAssignment_13
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getLoopAccess().getComplexityINTTerminalRuleCall_13_0()); }
+		RULE_INT
+		{ after(grammarAccess.getLoopAccess().getComplexityINTTerminalRuleCall_13_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__FrequenciesAssignment_17_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_0_0()); }
+		RULE_INT
+		{ after(grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Loop__FrequenciesAssignment_17_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_1_1_0()); }
+		RULE_INT
+		{ after(grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getFlowAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__BpmnReferenceAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowAccess().getBpmnReferenceBPMNReferenceParserRuleCall_3_0()); }
+		ruleBPMNReference
+		{ after(grammarAccess.getFlowAccess().getBpmnReferenceBPMNReferenceParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__InclElementsAssignment_8_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_0_0()); }
+		ruleFlowElementReference
+		{ after(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__InclElementsAssignment_8_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_1_1_0()); }
+		ruleFlowElementReference
+		{ after(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__ExclElementsAssignment_10_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_0_0()); }
+		ruleFlowElementReference
+		{ after(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Flow__ExclElementsAssignment_10_4_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0()); }
+		ruleFlowElementReference
+		{ after(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FlowReference__RefAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getFlowReferenceAccess().getRefFlowCrossReference_0()); }
+		(
+			{ before(grammarAccess.getFlowReferenceAccess().getRefFlowIDTerminalRuleCall_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getFlowReferenceAccess().getRefFlowIDTerminalRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getFlowReferenceAccess().getRefFlowCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTestAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getTestAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__FlowReferenceAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTestAccess().getFlowReferenceFlowReferenceParserRuleCall_3_0()); }
+		ruleFlowReference
+		{ after(grammarAccess.getTestAccess().getFlowReferenceFlowReferenceParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__PriorityAssignment_4_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTestAccess().getPriorityINTTerminalRuleCall_4_2_0()); }
+		RULE_INT
+		{ after(grammarAccess.getTestAccess().getPriorityINTTerminalRuleCall_4_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__DeclarationsAssignment_5_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_0_0()); }
+		ruleVariableDeclarations
+		{ after(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__DeclarationsAssignment_5_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0()); }
+		ruleVariableDeclarations
+		{ after(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__EndCheckAssignment_6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTestAccess().getEndCheckEndChecksParserRuleCall_6_0()); }
+		ruleEndChecks
+		{ after(grammarAccess.getTestAccess().getEndCheckEndChecksParserRuleCall_6_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__MocksAssignment_7_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_0_0()); }
+		ruleMockReference
+		{ after(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Test__MocksAssignment_7_4_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_1_1_0()); }
+		ruleMockReference
+		{ after(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__TaskReferenceAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceFlowElementReferenceParserRuleCall_3_0()); }
+		ruleFlowElementReference
+		{ after(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceFlowElementReferenceParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__VariablesAssignment_6_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_0_0()); }
+		ruleVariableDeclaration
+		{ after(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__VariableDeclarations__VariablesAssignment_6_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_1_1_0()); }
+		ruleVariableDeclaration
+		{ after(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__EndChecksAssignment_4_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_0_0()); }
+		ruleEndCheck
+		{ after(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__EndChecks__EndChecksAssignment_4_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_1_1_0()); }
+		ruleEndCheck
+		{ after(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableDeclaration__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableDeclaration__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableDeclarationAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getStringVariableDeclarationAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableDeclaration__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableDeclaration__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableDeclarationAccess().getValueINTTerminalRuleCall_2_0()); }
+		RULE_INT
+		{ after(grammarAccess.getIntVariableDeclarationAccess().getValueINTTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableDeclaration__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableDeclaration__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableDeclarationAccess().getValueBooleanEnumRuleCall_2_0()); }
+		ruleBoolean
+		{ after(grammarAccess.getBooleanVariableDeclarationAccess().getValueBooleanEnumRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableEquals__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableEquals__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableEqualsAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getStringVariableEqualsAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableEquals__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableEquals__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableEqualsAccess().getValueINTTerminalRuleCall_2_0()); }
+		RULE_INT
+		{ after(grammarAccess.getIntVariableEqualsAccess().getValueINTTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableEquals__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableEquals__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableEqualsAccess().getValueBooleanEnumRuleCall_2_0()); }
+		ruleBoolean
+		{ after(grammarAccess.getBooleanVariableEqualsAccess().getValueBooleanEnumRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableNotEquals__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringVariableNotEquals__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringVariableNotEqualsAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getStringVariableNotEqualsAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableNotEquals__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntVariableNotEquals__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntVariableNotEqualsAccess().getValueINTTerminalRuleCall_2_0()); }
+		RULE_INT
+		{ after(grammarAccess.getIntVariableNotEqualsAccess().getValueINTTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableNotEquals__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanVariableNotEquals__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanVariableNotEqualsAccess().getValueBooleanEnumRuleCall_2_0()); }
+		ruleBoolean
+		{ after(grammarAccess.getBooleanVariableNotEqualsAccess().getValueBooleanEnumRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockReference__RefAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getMockReferenceAccess().getRefMockCrossReference_0()); }
+		(
+			{ before(grammarAccess.getMockReferenceAccess().getRefMockIDTerminalRuleCall_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getMockReferenceAccess().getRefMockIDTerminalRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getMockReferenceAccess().getRefMockCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalServiceMockAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getExternalServiceMockAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__ExternalTopicAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalServiceMockAccess().getExternalTopicExternalTopicReferenceParserRuleCall_4_0()); }
+		ruleExternalTopicReference
+		{ after(grammarAccess.getExternalServiceMockAccess().getExternalTopicExternalTopicReferenceParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__MockingRulesAssignment_5_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_0_0()); }
+		ruleMockingRule
+		{ after(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ExternalServiceMock__MockingRulesAssignment_5_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_1_1_0()); }
+		ruleMockingRule
+		{ after(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__NameAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDelegateMockAccess().getNameIDTerminalRuleCall_1_0()); }
+		RULE_ID
+		{ after(grammarAccess.getDelegateMockAccess().getNameIDTerminalRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__ServiceTaskReferenceAssignment_3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0()); }
+		ruleDelegateServiceTaskReference
+		{ after(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__DelegateClassAssignment_6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDelegateMockAccess().getDelegateClassSTRINGTerminalRuleCall_6_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getDelegateMockAccess().getDelegateClassSTRINGTerminalRuleCall_6_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__ManualMocksAssignment_7_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_0_0()); }
+		ruleManualMock
+		{ after(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DelegateMock__ManualMocksAssignment_7_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_1_1_0()); }
+		ruleManualMock
+		{ after(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__ComparisonsAssignment_5_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_0_0()); }
+		ruleCompare
+		{ after(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__ComparisonsAssignment_5_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_1_1_0()); }
+		ruleCompare
+		{ after(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__VariablesAssignment_9_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_0_0()); }
+		ruleVariableDeclaration
+		{ after(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__MockingRule__VariablesAssignment_9_1_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_1_1_0()); }
+		ruleVariableDeclaration
+		{ after(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_1_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__ServiceNameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getManualMockAccess().getServiceNameSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getManualMockAccess().getServiceNameSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ManualMock__SetterAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getManualMockAccess().getSetterSTRINGTerminalRuleCall_5_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getManualMockAccess().getSetterSTRINGTerminalRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompare__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringCompareAccess().getKeyStringVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getStringCompareAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getStringCompareAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getStringCompareAccess().getKeyStringVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompare__CompareSymbolAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringCompareAccess().getCompareSymbolStringCompareSymbolEnumRuleCall_1_0()); }
+		ruleStringCompareSymbol
+		{ after(grammarAccess.getStringCompareAccess().getCompareSymbolStringCompareSymbolEnumRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__StringCompare__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getStringCompareAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+		RULE_STRING
+		{ after(grammarAccess.getStringCompareAccess().getValueSTRINGTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompare__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntCompareAccess().getKeyIntVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getIntCompareAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getIntCompareAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getIntCompareAccess().getKeyIntVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompare__CompareSymbolAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntCompareAccess().getCompareSymbolIntCompareSymbolEnumRuleCall_1_0()); }
+		ruleIntCompareSymbol
+		{ after(grammarAccess.getIntCompareAccess().getCompareSymbolIntCompareSymbolEnumRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntCompare__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getIntCompareAccess().getValueINTTerminalRuleCall_2_0()); }
+		RULE_INT
+		{ after(grammarAccess.getIntCompareAccess().getValueINTTerminalRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompare__KeyAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableCrossReference_0_0()); }
+		(
+			{ before(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); }
+			RULE_ID
+			{ after(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); }
+		)
+		{ after(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableCrossReference_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompare__CompareSymbolAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanCompareAccess().getCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0()); }
+		ruleBooleanCompareSymbol
+		{ after(grammarAccess.getBooleanCompareAccess().getCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanCompare__ValueAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getBooleanCompareAccess().getValueBooleanEnumRuleCall_2_0()); }
+		ruleBoolean
+		{ after(grammarAccess.getBooleanCompareAccess().getValueBooleanEnumRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+RULE_LIST_OPEN : '[';
+
+RULE_LIST_CLOSED : ']';
+
+RULE_ASSOCIATION : ':';
+
+RULE_SEPARATOR : ',';
+
+RULE_DECLARATION_FINISHED : ';';
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_'|'-') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'-')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -13322,3 +26621,4 @@ RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
 RULE_WS : (' '|'\t'|'\r'|'\n')+;
 
 RULE_ANY_OTHER : .;
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSL.tokens b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSL.tokens
index 568fb85db3c0ed185443cad41db91188a76d3d5c..08649435a05045135dd19055970d4e1ee60dca31 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSL.tokens
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSL.tokens
@@ -1,3 +1,141 @@
+<<<<<<< HEAD
+'!='=19
+'<'=20
+'<='=22
+'='=69
+'=='=18
+'>'=21
+'>='=23
+'BPMNDiagram'=24
+'Boolean'=51
+'BusinessRuleTask'=43
+'DelegateMock'=72
+'EndEvent'=34
+'ExternalServiceMock'=70
+'ExternalTopic'=47
+'Flow'=60
+'FlowElement'=31
+'Gateway'=44
+'Integer'=50
+'Loop'=52
+'ManualTask'=36
+'ScriptTask'=37
+'SequenceFlow'=45
+'ServiceTask'=38
+'StartEvent'=32
+'String'=48
+'Test'=64
+'UserTask'=35
+'bpmn'=27
+'by'=55
+'check'=68
+'complexity'=58
+'delegate'=39
+'dmn'=29
+'elements'=62
+'embedded'=30
+'ends'=56
+'expression'=46
+'external'=40
+'false'=17
+'follows'=54
+'for'=61
+'hardcoded'=41
+'has'=57
+'if'=74
+'inputVariables'=33
+'inputs'=42
+'key'=28
+'manual'=76
+'mocks'=66
+'passed'=59
+'priority'=65
+'proposals'=49
+'rule'=73
+'set'=75
+'setter'=77
+'starts'=53
+'testpackage'=26
+'topic'=71
+'true'=16
+'variables'=67
+'with'=25
+'without'=63
+RULE_ANY_OTHER=15
+RULE_ASSOCIATION=5
+RULE_DECLARATION_FINISHED=4
+RULE_ID=9
+RULE_INT=11
+RULE_LIST_CLOSED=7
+RULE_LIST_OPEN=6
+RULE_ML_COMMENT=12
+RULE_SEPARATOR=8
+RULE_SL_COMMENT=13
+RULE_STRING=10
+RULE_WS=14
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+=======
 '!='=19
 '<'=20
 '<='=22
@@ -134,3 +272,4 @@ T__74=74
 T__75=75
 T__76=76
 T__77=77
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSLLexer.java b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSLLexer.java
index b26717594c96a6aefd0cd12940cad604b52db5b4..151c4881701289e4cbe32595654fc8cfabed3809 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSLLexer.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSLLexer.java
@@ -1,3 +1,3149 @@
+<<<<<<< HEAD
+package de.fhmuenster.masterthesis.ide.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.ide.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 InternalTestgeneratorDSLLexer extends Lexer {
+    public static final int T__50=50;
+    public static final int T__19=19;
+    public static final int T__59=59;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__60=60;
+    public static final int T__61=61;
+    public static final int RULE_ID=9;
+    public static final int RULE_DECLARATION_FINISHED=4;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int RULE_INT=11;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__23=23;
+    public static final int T__67=67;
+    public static final int T__24=24;
+    public static final int T__68=68;
+    public static final int T__25=25;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__20=20;
+    public static final int T__64=64;
+    public static final int T__21=21;
+    public static final int T__65=65;
+    public static final int RULE_LIST_CLOSED=7;
+    public static final int T__70=70;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int RULE_STRING=10;
+    public static final int RULE_SEPARATOR=8;
+    public static final int RULE_SL_COMMENT=13;
+    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 T__33=33;
+    public static final int T__77=77;
+    public static final int RULE_LIST_OPEN=6;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int RULE_ASSOCIATION=5;
+    public static final int T__36=36;
+    public static final int T__73=73;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__74=74;
+    public static final int T__31=31;
+    public static final int T__75=75;
+    public static final int T__32=32;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+
+    // delegates
+    // delegators
+
+    public InternalTestgeneratorDSLLexer() {;} 
+    public InternalTestgeneratorDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalTestgeneratorDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "InternalTestgeneratorDSL.g"; }
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:11:7: ( 'true' )
+            // InternalTestgeneratorDSL.g:11:9: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:12:7: ( 'false' )
+            // InternalTestgeneratorDSL.g:12:9: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:13:7: ( '==' )
+            // InternalTestgeneratorDSL.g:13:9: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:14:7: ( '!=' )
+            // InternalTestgeneratorDSL.g:14:9: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:15:7: ( '<' )
+            // InternalTestgeneratorDSL.g:15: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;
+            // InternalTestgeneratorDSL.g:16:7: ( '>' )
+            // InternalTestgeneratorDSL.g:16:9: '>'
+            {
+            match('>'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__21"
+
+    // $ANTLR start "T__22"
+    public final void mT__22() throws RecognitionException {
+        try {
+            int _type = T__22;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:17:7: ( '<=' )
+            // InternalTestgeneratorDSL.g:17: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;
+            // InternalTestgeneratorDSL.g:18:7: ( '>=' )
+            // InternalTestgeneratorDSL.g:18: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;
+            // InternalTestgeneratorDSL.g:19:7: ( 'BPMNDiagram' )
+            // InternalTestgeneratorDSL.g:19:9: 'BPMNDiagram'
+            {
+            match("BPMNDiagram"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:20:7: ( 'with' )
+            // InternalTestgeneratorDSL.g:20:9: 'with'
+            {
+            match("with"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:21:7: ( 'testpackage' )
+            // InternalTestgeneratorDSL.g:21:9: 'testpackage'
+            {
+            match("testpackage"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:22:7: ( 'bpmn' )
+            // InternalTestgeneratorDSL.g:22:9: 'bpmn'
+            {
+            match("bpmn"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:23:7: ( 'key' )
+            // InternalTestgeneratorDSL.g:23:9: 'key'
+            {
+            match("key"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:24:7: ( 'dmn' )
+            // InternalTestgeneratorDSL.g:24:9: 'dmn'
+            {
+            match("dmn"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:25:7: ( 'embedded' )
+            // InternalTestgeneratorDSL.g:25:9: 'embedded'
+            {
+            match("embedded"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:26:7: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:26:9: 'FlowElement'
+            {
+            match("FlowElement"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:27:7: ( 'StartEvent' )
+            // InternalTestgeneratorDSL.g:27:9: 'StartEvent'
+            {
+            match("StartEvent"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:28:7: ( 'inputVariables' )
+            // InternalTestgeneratorDSL.g:28:9: 'inputVariables'
+            {
+            match("inputVariables"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:29:7: ( 'EndEvent' )
+            // InternalTestgeneratorDSL.g:29:9: 'EndEvent'
+            {
+            match("EndEvent"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:30:7: ( 'UserTask' )
+            // InternalTestgeneratorDSL.g:30:9: 'UserTask'
+            {
+            match("UserTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:31:7: ( 'ManualTask' )
+            // InternalTestgeneratorDSL.g:31:9: 'ManualTask'
+            {
+            match("ManualTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:32:7: ( 'ScriptTask' )
+            // InternalTestgeneratorDSL.g:32:9: 'ScriptTask'
+            {
+            match("ScriptTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:33:7: ( 'ServiceTask' )
+            // InternalTestgeneratorDSL.g:33:9: 'ServiceTask'
+            {
+            match("ServiceTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:34:7: ( 'delegate' )
+            // InternalTestgeneratorDSL.g:34:9: 'delegate'
+            {
+            match("delegate"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:35:7: ( 'external' )
+            // InternalTestgeneratorDSL.g:35:9: 'external'
+            {
+            match("external"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:36:7: ( 'hardcoded' )
+            // InternalTestgeneratorDSL.g:36:9: 'hardcoded'
+            {
+            match("hardcoded"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:37:7: ( 'inputs' )
+            // InternalTestgeneratorDSL.g:37:9: 'inputs'
+            {
+            match("inputs"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:38:7: ( 'BusinessRuleTask' )
+            // InternalTestgeneratorDSL.g:38:9: 'BusinessRuleTask'
+            {
+            match("BusinessRuleTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:39:7: ( 'Gateway' )
+            // InternalTestgeneratorDSL.g:39:9: 'Gateway'
+            {
+            match("Gateway"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:40:7: ( 'SequenceFlow' )
+            // InternalTestgeneratorDSL.g:40:9: 'SequenceFlow'
+            {
+            match("SequenceFlow"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:41:7: ( 'expression' )
+            // InternalTestgeneratorDSL.g:41:9: 'expression'
+            {
+            match("expression"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:42:7: ( 'ExternalTopic' )
+            // InternalTestgeneratorDSL.g:42:9: 'ExternalTopic'
+            {
+            match("ExternalTopic"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:43:7: ( 'String' )
+            // InternalTestgeneratorDSL.g:43:9: 'String'
+            {
+            match("String"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:44:7: ( 'proposals' )
+            // InternalTestgeneratorDSL.g:44:9: 'proposals'
+            {
+            match("proposals"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:45:7: ( 'Integer' )
+            // InternalTestgeneratorDSL.g:45:9: 'Integer'
+            {
+            match("Integer"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:46:7: ( 'Boolean' )
+            // InternalTestgeneratorDSL.g:46:9: 'Boolean'
+            {
+            match("Boolean"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:47:7: ( 'Loop' )
+            // InternalTestgeneratorDSL.g:47:9: 'Loop'
+            {
+            match("Loop"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:48:7: ( 'starts' )
+            // InternalTestgeneratorDSL.g:48:9: 'starts'
+            {
+            match("starts"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:49:7: ( 'follows' )
+            // InternalTestgeneratorDSL.g:49:9: 'follows'
+            {
+            match("follows"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:50:7: ( 'by' )
+            // InternalTestgeneratorDSL.g:50:9: 'by'
+            {
+            match("by"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:51:7: ( 'ends' )
+            // InternalTestgeneratorDSL.g:51:9: 'ends'
+            {
+            match("ends"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:52:7: ( 'has' )
+            // InternalTestgeneratorDSL.g:52:9: 'has'
+            {
+            match("has"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:53:7: ( 'complexity' )
+            // InternalTestgeneratorDSL.g:53:9: 'complexity'
+            {
+            match("complexity"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:54:7: ( 'passed' )
+            // InternalTestgeneratorDSL.g:54:9: 'passed'
+            {
+            match("passed"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:55:7: ( 'Flow' )
+            // InternalTestgeneratorDSL.g:55:9: 'Flow'
+            {
+            match("Flow"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:56:7: ( 'for' )
+            // InternalTestgeneratorDSL.g:56:9: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:57:7: ( 'elements' )
+            // InternalTestgeneratorDSL.g:57:9: 'elements'
+            {
+            match("elements"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:58:7: ( 'without' )
+            // InternalTestgeneratorDSL.g:58:9: 'without'
+            {
+            match("without"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:59:7: ( 'Test' )
+            // InternalTestgeneratorDSL.g:59:9: 'Test'
+            {
+            match("Test"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:60:7: ( 'priority' )
+            // InternalTestgeneratorDSL.g:60:9: 'priority'
+            {
+            match("priority"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:61:7: ( 'mocks' )
+            // InternalTestgeneratorDSL.g:61:9: 'mocks'
+            {
+            match("mocks"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:62:7: ( 'variables' )
+            // InternalTestgeneratorDSL.g:62:9: 'variables'
+            {
+            match("variables"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:63:7: ( 'check' )
+            // InternalTestgeneratorDSL.g:63:9: 'check'
+            {
+            match("check"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:64:7: ( '=' )
+            // InternalTestgeneratorDSL.g:64:9: '='
+            {
+            match('='); 
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:65:7: ( 'ExternalServiceMock' )
+            // InternalTestgeneratorDSL.g:65:9: 'ExternalServiceMock'
+            {
+            match("ExternalServiceMock"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:66:7: ( 'topic' )
+            // InternalTestgeneratorDSL.g:66:9: 'topic'
+            {
+            match("topic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:67:7: ( 'DelegateMock' )
+            // InternalTestgeneratorDSL.g:67:9: 'DelegateMock'
+            {
+            match("DelegateMock"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:68:7: ( 'rule' )
+            // InternalTestgeneratorDSL.g:68:9: 'rule'
+            {
+            match("rule"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:69:7: ( 'if' )
+            // InternalTestgeneratorDSL.g:69:9: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:70:7: ( 'set' )
+            // InternalTestgeneratorDSL.g:70:9: 'set'
+            {
+            match("set"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:71:7: ( 'manual' )
+            // InternalTestgeneratorDSL.g:71:9: 'manual'
+            {
+            match("manual"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:72:7: ( 'setter' )
+            // InternalTestgeneratorDSL.g:72:9: 'setter'
+            {
+            match("setter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
+    // $ANTLR start "RULE_LIST_OPEN"
+    public final void mRULE_LIST_OPEN() throws RecognitionException {
+        try {
+            int _type = RULE_LIST_OPEN;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:13275:16: ( '[' )
+            // InternalTestgeneratorDSL.g:13275:18: '['
+            {
+            match('['); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_LIST_OPEN"
+
+    // $ANTLR start "RULE_LIST_CLOSED"
+    public final void mRULE_LIST_CLOSED() throws RecognitionException {
+        try {
+            int _type = RULE_LIST_CLOSED;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:13277:18: ( ']' )
+            // InternalTestgeneratorDSL.g:13277:20: ']'
+            {
+            match(']'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_LIST_CLOSED"
+
+    // $ANTLR start "RULE_ASSOCIATION"
+    public final void mRULE_ASSOCIATION() throws RecognitionException {
+        try {
+            int _type = RULE_ASSOCIATION;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:13279:18: ( ':' )
+            // InternalTestgeneratorDSL.g:13279:20: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ASSOCIATION"
+
+    // $ANTLR start "RULE_SEPARATOR"
+    public final void mRULE_SEPARATOR() throws RecognitionException {
+        try {
+            int _type = RULE_SEPARATOR;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:13281:16: ( ',' )
+            // InternalTestgeneratorDSL.g:13281:18: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SEPARATOR"
+
+    // $ANTLR start "RULE_DECLARATION_FINISHED"
+    public final void mRULE_DECLARATION_FINISHED() throws RecognitionException {
+        try {
+            int _type = RULE_DECLARATION_FINISHED;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:13283:27: ( ';' )
+            // InternalTestgeneratorDSL.g:13283:29: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_DECLARATION_FINISHED"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:13285:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '-' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '-' )* )
+            // InternalTestgeneratorDSL.g:13285:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '-' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '-' )*
+            {
+            // InternalTestgeneratorDSL.g:13285:11: ( '^' )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='^') ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:13285:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( input.LA(1)=='-'||(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;}
+
+            // InternalTestgeneratorDSL.g:13285:44: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '-' )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0=='-'||(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 :
+            	    // InternalTestgeneratorDSL.g:
+            	    {
+            	    if ( input.LA(1)=='-'||(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;
+            // InternalTestgeneratorDSL.g:13287:10: ( ( '0' .. '9' )+ )
+            // InternalTestgeneratorDSL.g:13287:12: ( '0' .. '9' )+
+            {
+            // InternalTestgeneratorDSL.g:13287: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 :
+            	    // InternalTestgeneratorDSL.g:13287: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;
+            // InternalTestgeneratorDSL.g:13289:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // InternalTestgeneratorDSL.g:13289:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // InternalTestgeneratorDSL.g:13289:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            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 :
+                    // InternalTestgeneratorDSL.g:13289:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // InternalTestgeneratorDSL.g:13289:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    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 :
+                    	    // InternalTestgeneratorDSL.g:13289:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalTestgeneratorDSL.g:13289:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    {
+                    	    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 :
+                    // InternalTestgeneratorDSL.g:13289:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // InternalTestgeneratorDSL.g:13289:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    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 :
+                    	    // InternalTestgeneratorDSL.g:13289:54: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalTestgeneratorDSL.g:13289:61: ~ ( ( '\\\\' | '\\'' ) )
+                    	    {
+                    	    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;
+            // InternalTestgeneratorDSL.g:13291:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalTestgeneratorDSL.g:13291:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // InternalTestgeneratorDSL.g:13291: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 :
+            	    // InternalTestgeneratorDSL.g:13291: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;
+            // InternalTestgeneratorDSL.g:13293:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalTestgeneratorDSL.g:13293:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // InternalTestgeneratorDSL.g:13293: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 :
+            	    // InternalTestgeneratorDSL.g:13293: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);
+
+            // InternalTestgeneratorDSL.g:13293: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 :
+                    // InternalTestgeneratorDSL.g:13293:41: ( '\\r' )? '\\n'
+                    {
+                    // InternalTestgeneratorDSL.g:13293:41: ( '\\r' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
+
+                    if ( (LA9_0=='\r') ) {
+                        alt9=1;
+                    }
+                    switch (alt9) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:13293: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;
+            // InternalTestgeneratorDSL.g:13295:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalTestgeneratorDSL.g:13295:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // InternalTestgeneratorDSL.g:13295: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 :
+            	    // InternalTestgeneratorDSL.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;
+            // InternalTestgeneratorDSL.g:13297:16: ( . )
+            // InternalTestgeneratorDSL.g:13297:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // InternalTestgeneratorDSL.g:1:8: ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | RULE_LIST_OPEN | RULE_LIST_CLOSED | RULE_ASSOCIATION | RULE_SEPARATOR | RULE_DECLARATION_FINISHED | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=74;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // InternalTestgeneratorDSL.g:1:10: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 2 :
+                // InternalTestgeneratorDSL.g:1:16: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 3 :
+                // InternalTestgeneratorDSL.g:1:22: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 4 :
+                // InternalTestgeneratorDSL.g:1:28: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 5 :
+                // InternalTestgeneratorDSL.g:1:34: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 6 :
+                // InternalTestgeneratorDSL.g:1:40: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 7 :
+                // InternalTestgeneratorDSL.g:1:46: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 8 :
+                // InternalTestgeneratorDSL.g:1:52: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 9 :
+                // InternalTestgeneratorDSL.g:1:58: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 10 :
+                // InternalTestgeneratorDSL.g:1:64: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 11 :
+                // InternalTestgeneratorDSL.g:1:70: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 12 :
+                // InternalTestgeneratorDSL.g:1:76: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 13 :
+                // InternalTestgeneratorDSL.g:1:82: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 14 :
+                // InternalTestgeneratorDSL.g:1:88: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 15 :
+                // InternalTestgeneratorDSL.g:1:94: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 16 :
+                // InternalTestgeneratorDSL.g:1:100: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 17 :
+                // InternalTestgeneratorDSL.g:1:106: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 18 :
+                // InternalTestgeneratorDSL.g:1:112: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 19 :
+                // InternalTestgeneratorDSL.g:1:118: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 20 :
+                // InternalTestgeneratorDSL.g:1:124: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 21 :
+                // InternalTestgeneratorDSL.g:1:130: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 22 :
+                // InternalTestgeneratorDSL.g:1:136: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 23 :
+                // InternalTestgeneratorDSL.g:1:142: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 24 :
+                // InternalTestgeneratorDSL.g:1:148: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 25 :
+                // InternalTestgeneratorDSL.g:1:154: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 26 :
+                // InternalTestgeneratorDSL.g:1:160: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 27 :
+                // InternalTestgeneratorDSL.g:1:166: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 28 :
+                // InternalTestgeneratorDSL.g:1:172: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 29 :
+                // InternalTestgeneratorDSL.g:1:178: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 30 :
+                // InternalTestgeneratorDSL.g:1:184: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 31 :
+                // InternalTestgeneratorDSL.g:1:190: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 32 :
+                // InternalTestgeneratorDSL.g:1:196: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 33 :
+                // InternalTestgeneratorDSL.g:1:202: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 34 :
+                // InternalTestgeneratorDSL.g:1:208: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 35 :
+                // InternalTestgeneratorDSL.g:1:214: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 36 :
+                // InternalTestgeneratorDSL.g:1:220: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 37 :
+                // InternalTestgeneratorDSL.g:1:226: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 38 :
+                // InternalTestgeneratorDSL.g:1:232: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 39 :
+                // InternalTestgeneratorDSL.g:1:238: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 40 :
+                // InternalTestgeneratorDSL.g:1:244: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 41 :
+                // InternalTestgeneratorDSL.g:1:250: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 42 :
+                // InternalTestgeneratorDSL.g:1:256: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 43 :
+                // InternalTestgeneratorDSL.g:1:262: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 44 :
+                // InternalTestgeneratorDSL.g:1:268: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 45 :
+                // InternalTestgeneratorDSL.g:1:274: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 46 :
+                // InternalTestgeneratorDSL.g:1:280: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 47 :
+                // InternalTestgeneratorDSL.g:1:286: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 48 :
+                // InternalTestgeneratorDSL.g:1:292: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 49 :
+                // InternalTestgeneratorDSL.g:1:298: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 50 :
+                // InternalTestgeneratorDSL.g:1:304: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 51 :
+                // InternalTestgeneratorDSL.g:1:310: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 52 :
+                // InternalTestgeneratorDSL.g:1:316: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 53 :
+                // InternalTestgeneratorDSL.g:1:322: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 54 :
+                // InternalTestgeneratorDSL.g:1:328: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 55 :
+                // InternalTestgeneratorDSL.g:1:334: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 56 :
+                // InternalTestgeneratorDSL.g:1:340: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 57 :
+                // InternalTestgeneratorDSL.g:1:346: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 58 :
+                // InternalTestgeneratorDSL.g:1:352: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 59 :
+                // InternalTestgeneratorDSL.g:1:358: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 60 :
+                // InternalTestgeneratorDSL.g:1:364: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 61 :
+                // InternalTestgeneratorDSL.g:1:370: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 62 :
+                // InternalTestgeneratorDSL.g:1:376: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 63 :
+                // InternalTestgeneratorDSL.g:1:382: RULE_LIST_OPEN
+                {
+                mRULE_LIST_OPEN(); 
+
+                }
+                break;
+            case 64 :
+                // InternalTestgeneratorDSL.g:1:397: RULE_LIST_CLOSED
+                {
+                mRULE_LIST_CLOSED(); 
+
+                }
+                break;
+            case 65 :
+                // InternalTestgeneratorDSL.g:1:414: RULE_ASSOCIATION
+                {
+                mRULE_ASSOCIATION(); 
+
+                }
+                break;
+            case 66 :
+                // InternalTestgeneratorDSL.g:1:431: RULE_SEPARATOR
+                {
+                mRULE_SEPARATOR(); 
+
+                }
+                break;
+            case 67 :
+                // InternalTestgeneratorDSL.g:1:446: RULE_DECLARATION_FINISHED
+                {
+                mRULE_DECLARATION_FINISHED(); 
+
+                }
+                break;
+            case 68 :
+                // InternalTestgeneratorDSL.g:1:472: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 69 :
+                // InternalTestgeneratorDSL.g:1:480: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 70 :
+                // InternalTestgeneratorDSL.g:1:489: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 71 :
+                // InternalTestgeneratorDSL.g:1:501: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 72 :
+                // InternalTestgeneratorDSL.g:1:517: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 73 :
+                // InternalTestgeneratorDSL.g:1:533: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 74 :
+                // InternalTestgeneratorDSL.g:1:541: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\2\57\1\63\1\53\1\66\1\70\30\57\5\uffff\1\53\2\uffff\3\53\2\uffff\3\57\1\uffff\2\57\7\uffff\5\57\1\165\14\57\1\u0085\24\57\12\uffff\5\57\1\u00a1\5\57\1\uffff\1\u00a7\1\u00a8\15\57\1\uffff\5\57\1\u00bb\7\57\1\u00c4\10\57\1\u00cd\4\57\1\uffff\3\57\1\u00d6\1\u00d7\2\uffff\4\57\1\u00dc\1\57\1\u00df\13\57\1\uffff\5\57\1\u00f0\2\57\1\uffff\2\57\1\u00f5\4\57\1\u00fa\1\uffff\1\57\1\u00fc\1\u00fd\5\57\2\uffff\4\57\1\uffff\2\57\1\uffff\20\57\1\uffff\3\57\1\u011d\1\uffff\1\u011e\3\57\1\uffff\1\57\2\uffff\14\57\1\u012f\4\57\1\u0134\10\57\1\u013d\1\57\1\u013f\1\u0140\1\57\2\uffff\1\u0142\3\57\1\u0146\2\57\1\u0149\1\u014a\7\57\1\uffff\4\57\1\uffff\5\57\1\u015b\2\57\1\uffff\1\u015e\2\uffff\1\57\1\uffff\3\57\1\uffff\2\57\2\uffff\1\u0165\1\u0166\1\u0167\1\57\1\u0169\6\57\1\u0170\1\57\1\u0173\2\57\1\uffff\1\57\1\u0177\1\uffff\6\57\3\uffff\1\57\1\uffff\6\57\1\uffff\2\57\1\uffff\1\57\1\u0188\1\u0189\1\uffff\1\57\1\u018b\4\57\1\u0190\1\57\1\u0192\1\u0193\5\57\1\u0199\2\uffff\1\u019a\1\uffff\1\57\1\u019c\1\u019d\1\57\1\uffff\1\u019f\2\uffff\1\u01a0\4\57\2\uffff\1\57\2\uffff\1\57\2\uffff\1\u01a7\3\57\1\u01ab\1\57\1\uffff\1\57\1\u01ae\1\57\1\uffff\1\57\1\u01b1\1\uffff\2\57\1\uffff\1\57\1\u01b5\1\57\1\uffff\2\57\1\u01b9\1\uffff";
+    static final String DFA12_eofS =
+        "\u01ba\uffff";
+    static final String DFA12_minS =
+        "\1\0\1\145\1\141\4\75\1\120\1\151\1\160\2\145\2\154\1\143\1\146\1\156\1\163\4\141\1\156\1\157\1\145\1\150\1\145\2\141\1\145\1\165\5\uffff\1\55\2\uffff\2\0\1\52\2\uffff\1\165\1\163\1\160\1\uffff\2\154\7\uffff\1\115\1\163\1\157\1\164\1\155\1\55\1\171\1\156\1\154\1\142\1\160\1\144\1\145\1\157\1\141\1\162\1\161\1\160\1\55\1\144\1\164\1\145\1\156\1\162\1\164\1\151\1\163\1\164\1\157\1\141\1\164\1\155\1\145\1\163\1\143\1\156\1\162\2\154\12\uffff\1\145\1\164\1\151\1\163\1\154\1\55\1\116\1\151\1\154\1\150\1\156\1\uffff\2\55\3\145\1\162\1\163\1\155\1\167\1\162\2\151\1\166\2\165\1\uffff\1\105\1\145\1\162\1\165\1\144\1\55\1\145\1\160\1\157\1\163\1\145\1\160\1\162\1\55\1\160\1\143\1\164\1\153\1\165\1\151\2\145\1\55\1\160\1\143\1\145\1\157\1\uffff\1\104\1\156\1\145\2\55\2\uffff\1\147\1\144\1\162\1\145\1\55\1\145\1\55\1\164\1\156\1\160\1\151\1\145\1\164\1\166\1\162\1\124\1\141\1\143\1\uffff\1\167\1\157\1\162\1\145\1\147\1\55\1\164\1\145\1\uffff\1\154\1\153\1\55\1\163\2\141\1\147\1\55\1\uffff\1\141\2\55\1\167\1\151\1\145\1\141\1\165\2\uffff\1\141\1\144\1\156\1\163\1\uffff\1\156\1\154\1\uffff\1\105\1\147\1\164\1\143\1\156\1\126\1\145\1\156\1\141\1\154\1\157\1\141\1\163\1\151\1\144\1\145\1\uffff\1\163\1\162\1\145\1\55\1\uffff\1\55\1\154\1\142\1\141\1\uffff\1\143\2\uffff\1\163\1\141\1\163\1\156\2\164\1\145\1\141\1\163\1\164\1\145\1\166\1\55\1\124\1\145\1\143\1\141\1\55\1\156\1\141\1\163\1\124\1\144\1\171\1\141\1\164\1\55\1\162\2\55\1\170\2\uffff\1\55\1\154\1\164\1\153\1\55\1\147\1\163\2\55\1\145\1\144\1\154\1\151\1\163\1\155\1\145\1\uffff\1\141\1\124\1\145\1\162\1\uffff\1\164\1\154\1\153\1\141\1\145\1\55\1\154\1\171\1\uffff\1\55\2\uffff\1\151\1\uffff\2\145\1\141\1\uffff\1\162\1\122\2\uffff\3\55\1\157\1\55\1\145\1\156\1\163\1\141\1\106\1\151\1\55\1\123\1\55\1\163\1\144\1\uffff\1\163\1\55\1\uffff\1\164\1\163\1\115\1\147\1\141\1\165\3\uffff\1\156\1\uffff\1\156\1\164\1\153\1\163\1\154\1\141\1\uffff\1\157\1\145\1\uffff\1\153\2\55\1\uffff\1\171\1\55\1\157\1\145\1\155\1\154\1\55\1\164\2\55\1\153\1\157\1\142\1\160\1\162\1\55\2\uffff\1\55\1\uffff\1\143\2\55\1\145\1\uffff\1\55\2\uffff\1\55\1\167\1\154\1\151\1\166\2\uffff\1\153\2\uffff\1\124\2\uffff\1\55\1\145\1\143\1\151\1\55\1\141\1\uffff\1\163\1\55\1\143\1\uffff\1\163\1\55\1\uffff\1\145\1\153\1\uffff\1\115\1\55\1\157\1\uffff\1\143\1\153\1\55\1\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\1\162\1\157\4\75\1\165\1\151\1\171\1\145\1\155\1\170\1\154\1\164\1\156\1\170\1\163\3\141\1\162\1\156\1\157\1\164\1\157\1\145\1\157\1\141\1\145\1\165\5\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\165\1\163\1\160\1\uffff\1\154\1\162\7\uffff\1\115\1\163\1\157\1\164\1\155\1\172\1\171\1\156\1\154\1\142\1\164\1\144\1\145\1\157\3\162\1\160\1\172\1\144\1\164\1\145\1\156\1\163\1\164\1\157\1\163\1\164\1\157\1\141\1\164\1\155\1\145\1\163\1\143\1\156\1\162\2\154\12\uffff\1\145\1\164\1\151\1\163\1\154\1\172\1\116\1\151\1\154\1\150\1\156\1\uffff\2\172\3\145\1\162\1\163\1\155\1\167\1\162\2\151\1\166\2\165\1\uffff\1\105\1\145\1\162\1\165\1\144\1\172\1\145\1\160\1\157\1\163\1\145\1\160\1\162\1\172\1\160\1\143\1\164\1\153\1\165\1\151\2\145\1\172\1\160\1\143\1\145\1\157\1\uffff\1\104\1\156\1\145\2\172\2\uffff\1\147\1\144\1\162\1\145\1\172\1\145\1\172\1\164\1\156\1\160\1\151\1\145\1\164\1\166\1\162\1\124\1\141\1\143\1\uffff\1\167\1\157\1\162\1\145\1\147\1\172\1\164\1\145\1\uffff\1\154\1\153\1\172\1\163\2\141\1\147\1\172\1\uffff\1\141\2\172\1\167\1\151\1\145\1\141\1\165\2\uffff\1\141\1\144\1\156\1\163\1\uffff\1\156\1\154\1\uffff\1\105\1\147\1\164\1\143\1\156\1\163\1\145\1\156\1\141\1\154\1\157\1\141\1\163\1\151\1\144\1\145\1\uffff\1\163\1\162\1\145\1\172\1\uffff\1\172\1\154\1\142\1\141\1\uffff\1\143\2\uffff\1\163\1\141\1\163\1\156\2\164\1\145\1\141\1\163\1\164\1\145\1\166\1\172\1\124\1\145\1\143\1\141\1\172\1\156\1\141\1\163\1\124\1\144\1\171\1\141\1\164\1\172\1\162\2\172\1\170\2\uffff\1\172\1\154\1\164\1\153\1\172\1\147\1\163\2\172\1\145\1\144\1\154\1\151\1\163\1\155\1\145\1\uffff\1\141\1\124\1\145\1\162\1\uffff\1\164\1\154\1\153\1\141\1\145\1\172\1\154\1\171\1\uffff\1\172\2\uffff\1\151\1\uffff\2\145\1\141\1\uffff\1\162\1\122\2\uffff\3\172\1\157\1\172\1\145\1\156\1\163\1\141\1\106\1\151\1\172\1\124\1\172\1\163\1\144\1\uffff\1\163\1\172\1\uffff\1\164\1\163\1\115\1\147\1\141\1\165\3\uffff\1\156\1\uffff\1\156\1\164\1\153\1\163\1\154\1\141\1\uffff\1\157\1\145\1\uffff\1\153\2\172\1\uffff\1\171\1\172\1\157\1\145\1\155\1\154\1\172\1\164\2\172\1\153\1\157\1\142\1\160\1\162\1\172\2\uffff\1\172\1\uffff\1\143\2\172\1\145\1\uffff\1\172\2\uffff\1\172\1\167\1\154\1\151\1\166\2\uffff\1\153\2\uffff\1\124\2\uffff\1\172\1\145\1\143\1\151\1\172\1\141\1\uffff\1\163\1\172\1\143\1\uffff\1\163\1\172\1\uffff\1\145\1\153\1\uffff\1\115\1\172\1\157\1\uffff\1\143\1\153\1\172\1\uffff";
+    static final String DFA12_acceptS =
+        "\37\uffff\1\77\1\100\1\101\1\102\1\103\1\uffff\1\104\1\105\3\uffff\1\111\1\112\3\uffff\1\104\2\uffff\1\3\1\66\1\4\1\7\1\5\1\10\1\6\47\uffff\1\77\1\100\1\101\1\102\1\103\1\105\1\106\1\107\1\110\1\111\13\uffff\1\50\17\uffff\1\73\33\uffff\1\56\5\uffff\1\15\1\16\22\uffff\1\52\10\uffff\1\74\10\uffff\1\1\10\uffff\1\12\1\14\4\uffff\1\51\2\uffff\1\55\20\uffff\1\45\4\uffff\1\61\4\uffff\1\72\1\uffff\1\70\1\2\37\uffff\1\65\1\63\20\uffff\1\41\4\uffff\1\33\10\uffff\1\54\1\uffff\1\46\1\76\1\uffff\1\75\3\uffff\1\47\2\uffff\1\44\1\60\20\uffff\1\35\2\uffff\1\43\6\uffff\1\30\1\17\1\31\1\uffff\1\57\6\uffff\1\23\2\uffff\1\24\3\uffff\1\62\20\uffff\1\32\1\42\1\uffff\1\64\4\uffff\1\37\1\uffff\1\21\1\26\5\uffff\1\25\1\53\1\uffff\1\13\1\11\1\uffff\1\20\1\27\6\uffff\1\36\3\uffff\1\71\2\uffff\1\40\2\uffff\1\22\3\uffff\1\34\3\uffff\1\67";
+    static final String DFA12_specialS =
+        "\1\2\46\uffff\1\0\1\1\u0191\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\53\2\52\2\53\1\52\22\53\1\52\1\4\1\47\4\53\1\50\4\53\1\42\1\45\1\53\1\51\12\46\1\41\1\43\1\5\1\3\1\6\2\53\1\45\1\7\1\45\1\35\1\20\1\15\1\24\1\45\1\26\2\45\1\27\1\22\5\45\1\16\1\32\1\21\5\45\1\37\1\53\1\40\1\44\1\45\1\53\1\45\1\11\1\31\1\13\1\14\1\2\1\45\1\23\1\17\1\45\1\12\1\45\1\33\2\45\1\25\1\45\1\36\1\30\1\1\1\45\1\34\1\10\3\45\uff85\53",
+            "\1\55\11\uffff\1\56\2\uffff\1\54",
+            "\1\60\15\uffff\1\61",
+            "\1\62",
+            "\1\64",
+            "\1\65",
+            "\1\67",
+            "\1\71\36\uffff\1\73\5\uffff\1\72",
+            "\1\74",
+            "\1\75\10\uffff\1\76",
+            "\1\77",
+            "\1\101\7\uffff\1\100",
+            "\1\105\1\102\1\104\11\uffff\1\103",
+            "\1\106",
+            "\1\110\1\uffff\1\111\16\uffff\1\107",
+            "\1\113\7\uffff\1\112",
+            "\1\114\11\uffff\1\115",
+            "\1\116",
+            "\1\117",
+            "\1\120",
+            "\1\121",
+            "\1\123\20\uffff\1\122",
+            "\1\124",
+            "\1\125",
+            "\1\127\16\uffff\1\126",
+            "\1\131\6\uffff\1\130",
+            "\1\132",
+            "\1\134\15\uffff\1\133",
+            "\1\135",
+            "\1\136",
+            "\1\137",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\57\23\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\0\146",
+            "\0\146",
+            "\1\147\4\uffff\1\150",
+            "",
+            "",
+            "\1\152",
+            "\1\153",
+            "\1\154",
+            "",
+            "\1\155",
+            "\1\156\5\uffff\1\157",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\160",
+            "\1\161",
+            "\1\162",
+            "\1\163",
+            "\1\164",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\166",
+            "\1\167",
+            "\1\170",
+            "\1\171",
+            "\1\173\3\uffff\1\172",
+            "\1\174",
+            "\1\175",
+            "\1\176",
+            "\1\177\20\uffff\1\u0080",
+            "\1\u0081",
+            "\1\u0083\1\u0082",
+            "\1\u0084",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0086",
+            "\1\u0087",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a\1\u008b",
+            "\1\u008c",
+            "\1\u008e\5\uffff\1\u008d",
+            "\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\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00a2",
+            "\1\u00a3",
+            "\1\u00a4",
+            "\1\u00a5",
+            "\1\u00a6",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\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\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\23\57\1\u00c3\6\57",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\1\u00c7",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
+            "\1\u00cb",
+            "\1\u00cc",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1",
+            "",
+            "\1\u00d2",
+            "\1\u00d3",
+            "\1\u00d4",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\16\57\1\u00d5\13\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\u00da",
+            "\1\u00db",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00dd",
+            "\1\57\2\uffff\12\57\7\uffff\4\57\1\u00de\25\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea",
+            "",
+            "\1\u00eb",
+            "\1\u00ec",
+            "\1\u00ed",
+            "\1\u00ee",
+            "\1\u00ef",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00f1",
+            "\1\u00f2",
+            "",
+            "\1\u00f3",
+            "\1\u00f4",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00f6",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\u00fb",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "",
+            "",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\1\u0106",
+            "",
+            "\1\u0107",
+            "\1\u0108",
+            "",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "\1\u010c",
+            "\1\u010d",
+            "\1\u010e\34\uffff\1\u010f",
+            "\1\u0110",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "",
+            "\1\u011a",
+            "\1\u011b",
+            "\1\u011c",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u011f",
+            "\1\u0120",
+            "\1\u0121",
+            "",
+            "\1\u0122",
+            "",
+            "",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "\1\u012d",
+            "\1\u012e",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\u0133",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0135",
+            "\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\1\u013c",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u013e",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0141",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0143",
+            "\1\u0144",
+            "\1\u0145",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0147",
+            "\1\u0148",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u014b",
+            "\1\u014c",
+            "\1\u014d",
+            "\1\u014e",
+            "\1\u014f",
+            "\1\u0150",
+            "\1\u0151",
+            "",
+            "\1\u0152",
+            "\1\u0153",
+            "\1\u0154",
+            "\1\u0155",
+            "",
+            "\1\u0156",
+            "\1\u0157",
+            "\1\u0158",
+            "\1\u0159",
+            "\1\u015a",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u015c",
+            "\1\u015d",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\u015f",
+            "",
+            "\1\u0160",
+            "\1\u0161",
+            "\1\u0162",
+            "",
+            "\1\u0163",
+            "\1\u0164",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0168",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u016a",
+            "\1\u016b",
+            "\1\u016c",
+            "\1\u016d",
+            "\1\u016e",
+            "\1\u016f",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0172\1\u0171",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0174",
+            "\1\u0175",
+            "",
+            "\1\u0176",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\u0178",
+            "\1\u0179",
+            "\1\u017a",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\u017d",
+            "",
+            "",
+            "",
+            "\1\u017e",
+            "",
+            "\1\u017f",
+            "\1\u0180",
+            "\1\u0181",
+            "\1\u0182",
+            "\1\u0183",
+            "\1\u0184",
+            "",
+            "\1\u0185",
+            "\1\u0186",
+            "",
+            "\1\u0187",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\u018a",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u018c",
+            "\1\u018d",
+            "\1\u018e",
+            "\1\u018f",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0191",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0194",
+            "\1\u0195",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\u019b",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u019e",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\u01a4",
+            "",
+            "",
+            "\1\u01a5",
+            "",
+            "",
+            "\1\u01a6",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01a8",
+            "\1\u01a9",
+            "\1\u01aa",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01ac",
+            "",
+            "\1\u01ad",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01af",
+            "",
+            "\1\u01b0",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\u01b2",
+            "\1\u01b3",
+            "",
+            "\1\u01b4",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01b6",
+            "",
+            "\1\u01b7",
+            "\1\u01b8",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            ""
+    };
+
+    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+    static final short[][] DFA12_transition;
+
+    static {
+        int numStates = DFA12_transitionS.length;
+        DFA12_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+        }
+    }
+
+    class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = DFA12_eot;
+            this.eof = DFA12_eof;
+            this.min = DFA12_min;
+            this.max = DFA12_max;
+            this.accept = DFA12_accept;
+            this.special = DFA12_special;
+            this.transition = DFA12_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | RULE_LIST_OPEN | RULE_LIST_CLOSED | RULE_ASSOCIATION | RULE_SEPARATOR | RULE_DECLARATION_FINISHED | 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_39 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_39>='\u0000' && LA12_39<='\uFFFF')) ) {s = 102;}
+
+                        else s = 43;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_40 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_40>='\u0000' && LA12_40<='\uFFFF')) ) {s = 102;}
+
+                        else s = 43;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA12_0=='t') ) {s = 1;}
+
+                        else if ( (LA12_0=='f') ) {s = 2;}
+
+                        else if ( (LA12_0=='=') ) {s = 3;}
+
+                        else if ( (LA12_0=='!') ) {s = 4;}
+
+                        else if ( (LA12_0=='<') ) {s = 5;}
+
+                        else if ( (LA12_0=='>') ) {s = 6;}
+
+                        else if ( (LA12_0=='B') ) {s = 7;}
+
+                        else if ( (LA12_0=='w') ) {s = 8;}
+
+                        else if ( (LA12_0=='b') ) {s = 9;}
+
+                        else if ( (LA12_0=='k') ) {s = 10;}
+
+                        else if ( (LA12_0=='d') ) {s = 11;}
+
+                        else if ( (LA12_0=='e') ) {s = 12;}
+
+                        else if ( (LA12_0=='F') ) {s = 13;}
+
+                        else if ( (LA12_0=='S') ) {s = 14;}
+
+                        else if ( (LA12_0=='i') ) {s = 15;}
+
+                        else if ( (LA12_0=='E') ) {s = 16;}
+
+                        else if ( (LA12_0=='U') ) {s = 17;}
+
+                        else if ( (LA12_0=='M') ) {s = 18;}
+
+                        else if ( (LA12_0=='h') ) {s = 19;}
+
+                        else if ( (LA12_0=='G') ) {s = 20;}
+
+                        else if ( (LA12_0=='p') ) {s = 21;}
+
+                        else if ( (LA12_0=='I') ) {s = 22;}
+
+                        else if ( (LA12_0=='L') ) {s = 23;}
+
+                        else if ( (LA12_0=='s') ) {s = 24;}
+
+                        else if ( (LA12_0=='c') ) {s = 25;}
+
+                        else if ( (LA12_0=='T') ) {s = 26;}
+
+                        else if ( (LA12_0=='m') ) {s = 27;}
+
+                        else if ( (LA12_0=='v') ) {s = 28;}
+
+                        else if ( (LA12_0=='D') ) {s = 29;}
+
+                        else if ( (LA12_0=='r') ) {s = 30;}
+
+                        else if ( (LA12_0=='[') ) {s = 31;}
+
+                        else if ( (LA12_0==']') ) {s = 32;}
+
+                        else if ( (LA12_0==':') ) {s = 33;}
+
+                        else if ( (LA12_0==',') ) {s = 34;}
+
+                        else if ( (LA12_0==';') ) {s = 35;}
+
+                        else if ( (LA12_0=='^') ) {s = 36;}
+
+                        else if ( (LA12_0=='-'||LA12_0=='A'||LA12_0=='C'||LA12_0=='H'||(LA12_0>='J' && LA12_0<='K')||(LA12_0>='N' && LA12_0<='R')||(LA12_0>='V' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||LA12_0=='g'||LA12_0=='j'||LA12_0=='l'||(LA12_0>='n' && LA12_0<='o')||LA12_0=='q'||LA12_0=='u'||(LA12_0>='x' && LA12_0<='z')) ) {s = 37;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 38;}
+
+                        else if ( (LA12_0=='\"') ) {s = 39;}
+
+                        else if ( (LA12_0=='\'') ) {s = 40;}
+
+                        else if ( (LA12_0=='/') ) {s = 41;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 42;}
+
+                        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<='\uFFFF')) ) {s = 43;}
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 12, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+=======
 package de.fhmuenster.masterthesis.ide.contentassist.antlr.internal;
 
 // Hack: Use our own Lexer superclass by means of import. 
@@ -3149,4 +6295,5 @@ public class InternalTestgeneratorDSLLexer extends Lexer {
     }
  
 
+>>>>>>> master
 }
\ No newline at end of file
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSLParser.java b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSLParser.java
index 2b00425229dd5d781760c7baac6252461c4f2d6e..8de271f34c275e30c48a333e2874228e0f2886f9 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSLParser.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ide/src-gen/de/fhmuenster/masterthesis/ide/contentassist/antlr/internal/InternalTestgeneratorDSLParser.java
@@ -1,3 +1,39431 @@
+<<<<<<< HEAD
+package de.fhmuenster.masterthesis.ide.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.ide.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ide.editor.contentassist.antlr.internal.DFA;
+import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalTestgeneratorDSLParser extends AbstractInternalContentAssistParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DECLARATION_FINISHED", "RULE_ASSOCIATION", "RULE_LIST_OPEN", "RULE_LIST_CLOSED", "RULE_SEPARATOR", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'true'", "'false'", "'=='", "'!='", "'<'", "'>'", "'<='", "'>='", "'BPMNDiagram'", "'with'", "'testpackage'", "'bpmn'", "'key'", "'dmn'", "'embedded'", "'FlowElement'", "'StartEvent'", "'inputVariables'", "'EndEvent'", "'UserTask'", "'ManualTask'", "'ScriptTask'", "'ServiceTask'", "'delegate'", "'external'", "'hardcoded'", "'inputs'", "'BusinessRuleTask'", "'Gateway'", "'SequenceFlow'", "'expression'", "'ExternalTopic'", "'String'", "'proposals'", "'Integer'", "'Boolean'", "'Loop'", "'starts'", "'follows'", "'by'", "'ends'", "'has'", "'complexity'", "'passed'", "'Flow'", "'for'", "'elements'", "'without'", "'Test'", "'priority'", "'mocks'", "'variables'", "'check'", "'='", "'ExternalServiceMock'", "'topic'", "'DelegateMock'", "'rule'", "'if'", "'set'", "'manual'", "'setter'"
+    };
+    public static final int T__50=50;
+    public static final int T__19=19;
+    public static final int T__59=59;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__60=60;
+    public static final int T__61=61;
+    public static final int RULE_ID=9;
+    public static final int RULE_DECLARATION_FINISHED=4;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int RULE_INT=11;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__23=23;
+    public static final int T__67=67;
+    public static final int T__24=24;
+    public static final int T__68=68;
+    public static final int T__25=25;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__20=20;
+    public static final int T__64=64;
+    public static final int T__21=21;
+    public static final int T__65=65;
+    public static final int RULE_LIST_CLOSED=7;
+    public static final int T__70=70;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int RULE_STRING=10;
+    public static final int RULE_SEPARATOR=8;
+    public static final int RULE_SL_COMMENT=13;
+    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 T__33=33;
+    public static final int T__77=77;
+    public static final int RULE_LIST_OPEN=6;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int RULE_ASSOCIATION=5;
+    public static final int T__36=36;
+    public static final int T__73=73;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__74=74;
+    public static final int T__31=31;
+    public static final int T__75=75;
+    public static final int T__32=32;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+
+    // delegates
+    // delegators
+
+
+        public InternalTestgeneratorDSLParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalTestgeneratorDSLParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalTestgeneratorDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "InternalTestgeneratorDSL.g"; }
+
+
+    	private TestgeneratorDSLGrammarAccess grammarAccess;
+
+    	public void setGrammarAccess(TestgeneratorDSLGrammarAccess grammarAccess) {
+    		this.grammarAccess = grammarAccess;
+    	}
+
+    	@Override
+    	protected Grammar getGrammar() {
+    		return grammarAccess.getGrammar();
+    	}
+
+    	@Override
+    	protected String getValueForTokenName(String tokenName) {
+    		return tokenName;
+    	}
+
+
+
+    // $ANTLR start "entryRuleModel"
+    // InternalTestgeneratorDSL.g:53:1: entryRuleModel : ruleModel EOF ;
+    public final void entryRuleModel() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:54:1: ( ruleModel EOF )
+            // InternalTestgeneratorDSL.g:55:1: ruleModel EOF
+            {
+             before(grammarAccess.getModelRule()); 
+            pushFollow(FOLLOW_1);
+            ruleModel();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleModel"
+
+
+    // $ANTLR start "ruleModel"
+    // InternalTestgeneratorDSL.g:62:1: ruleModel : ( ( rule__Model__DeclarationsAssignment )* ) ;
+    public final void ruleModel() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:66:2: ( ( ( rule__Model__DeclarationsAssignment )* ) )
+            // InternalTestgeneratorDSL.g:67:2: ( ( rule__Model__DeclarationsAssignment )* )
+            {
+            // InternalTestgeneratorDSL.g:67:2: ( ( rule__Model__DeclarationsAssignment )* )
+            // InternalTestgeneratorDSL.g:68:3: ( rule__Model__DeclarationsAssignment )*
+            {
+             before(grammarAccess.getModelAccess().getDeclarationsAssignment()); 
+            // InternalTestgeneratorDSL.g:69:3: ( rule__Model__DeclarationsAssignment )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==24||LA1_0==31||(LA1_0>=47 && LA1_0<=48)||(LA1_0>=50 && LA1_0<=52)||LA1_0==60||LA1_0==64||LA1_0==70||LA1_0==72) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:69:4: rule__Model__DeclarationsAssignment
+            	    {
+            	    pushFollow(FOLLOW_3);
+            	    rule__Model__DeclarationsAssignment();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+             after(grammarAccess.getModelAccess().getDeclarationsAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleModel"
+
+
+    // $ANTLR start "entryRuleDeclaration"
+    // InternalTestgeneratorDSL.g:78:1: entryRuleDeclaration : ruleDeclaration EOF ;
+    public final void entryRuleDeclaration() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:79:1: ( ruleDeclaration EOF )
+            // InternalTestgeneratorDSL.g:80:1: ruleDeclaration EOF
+            {
+             before(grammarAccess.getDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            ruleDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getDeclarationRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDeclaration"
+
+
+    // $ANTLR start "ruleDeclaration"
+    // InternalTestgeneratorDSL.g:87:1: ruleDeclaration : ( ( rule__Declaration__Alternatives ) ) ;
+    public final void ruleDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:91:2: ( ( ( rule__Declaration__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:92:2: ( ( rule__Declaration__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:92:2: ( ( rule__Declaration__Alternatives ) )
+            // InternalTestgeneratorDSL.g:93:3: ( rule__Declaration__Alternatives )
+            {
+             before(grammarAccess.getDeclarationAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:94:3: ( rule__Declaration__Alternatives )
+            // InternalTestgeneratorDSL.g:94:4: rule__Declaration__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Declaration__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDeclarationAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDeclaration"
+
+
+    // $ANTLR start "entryRuleBPMNDiagram"
+    // InternalTestgeneratorDSL.g:103:1: entryRuleBPMNDiagram : ruleBPMNDiagram EOF ;
+    public final void entryRuleBPMNDiagram() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:104:1: ( ruleBPMNDiagram EOF )
+            // InternalTestgeneratorDSL.g:105:1: ruleBPMNDiagram EOF
+            {
+             before(grammarAccess.getBPMNDiagramRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBPMNDiagram();
+
+            state._fsp--;
+
+             after(grammarAccess.getBPMNDiagramRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBPMNDiagram"
+
+
+    // $ANTLR start "ruleBPMNDiagram"
+    // InternalTestgeneratorDSL.g:112:1: ruleBPMNDiagram : ( ( rule__BPMNDiagram__Group__0 ) ) ;
+    public final void ruleBPMNDiagram() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:116:2: ( ( ( rule__BPMNDiagram__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:117:2: ( ( rule__BPMNDiagram__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:117:2: ( ( rule__BPMNDiagram__Group__0 ) )
+            // InternalTestgeneratorDSL.g:118:3: ( rule__BPMNDiagram__Group__0 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:119:3: ( rule__BPMNDiagram__Group__0 )
+            // InternalTestgeneratorDSL.g:119:4: rule__BPMNDiagram__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBPMNDiagram"
+
+
+    // $ANTLR start "entryRuleBPMNReference"
+    // InternalTestgeneratorDSL.g:128:1: entryRuleBPMNReference : ruleBPMNReference EOF ;
+    public final void entryRuleBPMNReference() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:129:1: ( ruleBPMNReference EOF )
+            // InternalTestgeneratorDSL.g:130:1: ruleBPMNReference EOF
+            {
+             before(grammarAccess.getBPMNReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBPMNReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getBPMNReferenceRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBPMNReference"
+
+
+    // $ANTLR start "ruleBPMNReference"
+    // InternalTestgeneratorDSL.g:137:1: ruleBPMNReference : ( ( rule__BPMNReference__RefAssignment ) ) ;
+    public final void ruleBPMNReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:141:2: ( ( ( rule__BPMNReference__RefAssignment ) ) )
+            // InternalTestgeneratorDSL.g:142:2: ( ( rule__BPMNReference__RefAssignment ) )
+            {
+            // InternalTestgeneratorDSL.g:142:2: ( ( rule__BPMNReference__RefAssignment ) )
+            // InternalTestgeneratorDSL.g:143:3: ( rule__BPMNReference__RefAssignment )
+            {
+             before(grammarAccess.getBPMNReferenceAccess().getRefAssignment()); 
+            // InternalTestgeneratorDSL.g:144:3: ( rule__BPMNReference__RefAssignment )
+            // InternalTestgeneratorDSL.g:144:4: rule__BPMNReference__RefAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNReference__RefAssignment();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNReferenceAccess().getRefAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBPMNReference"
+
+
+    // $ANTLR start "entryRuleFlowElement"
+    // InternalTestgeneratorDSL.g:153:1: entryRuleFlowElement : ruleFlowElement EOF ;
+    public final void entryRuleFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:154:1: ( ruleFlowElement EOF )
+            // InternalTestgeneratorDSL.g:155:1: ruleFlowElement EOF
+            {
+             before(grammarAccess.getFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFlowElement"
+
+
+    // $ANTLR start "ruleFlowElement"
+    // InternalTestgeneratorDSL.g:162:1: ruleFlowElement : ( ( rule__FlowElement__Alternatives ) ) ;
+    public final void ruleFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:166:2: ( ( ( rule__FlowElement__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:167:2: ( ( rule__FlowElement__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:167:2: ( ( rule__FlowElement__Alternatives ) )
+            // InternalTestgeneratorDSL.g:168:3: ( rule__FlowElement__Alternatives )
+            {
+             before(grammarAccess.getFlowElementAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:169:3: ( rule__FlowElement__Alternatives )
+            // InternalTestgeneratorDSL.g:169:4: rule__FlowElement__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__FlowElement__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowElementAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFlowElement"
+
+
+    // $ANTLR start "entryRuleStartFlowElement"
+    // InternalTestgeneratorDSL.g:178:1: entryRuleStartFlowElement : ruleStartFlowElement EOF ;
+    public final void entryRuleStartFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:179:1: ( ruleStartFlowElement EOF )
+            // InternalTestgeneratorDSL.g:180:1: ruleStartFlowElement EOF
+            {
+             before(grammarAccess.getStartFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleStartFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStartFlowElement"
+
+
+    // $ANTLR start "ruleStartFlowElement"
+    // InternalTestgeneratorDSL.g:187:1: ruleStartFlowElement : ( ( rule__StartFlowElement__Group__0 ) ) ;
+    public final void ruleStartFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:191:2: ( ( ( rule__StartFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:192:2: ( ( rule__StartFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:192:2: ( ( rule__StartFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:193:3: ( rule__StartFlowElement__Group__0 )
+            {
+             before(grammarAccess.getStartFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:194:3: ( rule__StartFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:194:4: rule__StartFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStartFlowElement"
+
+
+    // $ANTLR start "entryRuleEndFlowElement"
+    // InternalTestgeneratorDSL.g:203:1: entryRuleEndFlowElement : ruleEndFlowElement EOF ;
+    public final void entryRuleEndFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:204:1: ( ruleEndFlowElement EOF )
+            // InternalTestgeneratorDSL.g:205:1: ruleEndFlowElement EOF
+            {
+             before(grammarAccess.getEndFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleEndFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEndFlowElement"
+
+
+    // $ANTLR start "ruleEndFlowElement"
+    // InternalTestgeneratorDSL.g:212:1: ruleEndFlowElement : ( ( rule__EndFlowElement__Group__0 ) ) ;
+    public final void ruleEndFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:216:2: ( ( ( rule__EndFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:217:2: ( ( rule__EndFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:217:2: ( ( rule__EndFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:218:3: ( rule__EndFlowElement__Group__0 )
+            {
+             before(grammarAccess.getEndFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:219:3: ( rule__EndFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:219:4: rule__EndFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEndFlowElement"
+
+
+    // $ANTLR start "entryRuleUserTaskFlowElement"
+    // InternalTestgeneratorDSL.g:228:1: entryRuleUserTaskFlowElement : ruleUserTaskFlowElement EOF ;
+    public final void entryRuleUserTaskFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:229:1: ( ruleUserTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:230:1: ruleUserTaskFlowElement EOF
+            {
+             before(grammarAccess.getUserTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleUserTaskFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getUserTaskFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleUserTaskFlowElement"
+
+
+    // $ANTLR start "ruleUserTaskFlowElement"
+    // InternalTestgeneratorDSL.g:237:1: ruleUserTaskFlowElement : ( ( rule__UserTaskFlowElement__Group__0 ) ) ;
+    public final void ruleUserTaskFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:241:2: ( ( ( rule__UserTaskFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:242:2: ( ( rule__UserTaskFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:242:2: ( ( rule__UserTaskFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:243:3: ( rule__UserTaskFlowElement__Group__0 )
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:244:3: ( rule__UserTaskFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:244:4: rule__UserTaskFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleUserTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleManualTaskFlowElement"
+    // InternalTestgeneratorDSL.g:253:1: entryRuleManualTaskFlowElement : ruleManualTaskFlowElement EOF ;
+    public final void entryRuleManualTaskFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:254:1: ( ruleManualTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:255:1: ruleManualTaskFlowElement EOF
+            {
+             before(grammarAccess.getManualTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleManualTaskFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getManualTaskFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleManualTaskFlowElement"
+
+
+    // $ANTLR start "ruleManualTaskFlowElement"
+    // InternalTestgeneratorDSL.g:262:1: ruleManualTaskFlowElement : ( ( rule__ManualTaskFlowElement__Group__0 ) ) ;
+    public final void ruleManualTaskFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:266:2: ( ( ( rule__ManualTaskFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:267:2: ( ( rule__ManualTaskFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:267:2: ( ( rule__ManualTaskFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:268:3: ( rule__ManualTaskFlowElement__Group__0 )
+            {
+             before(grammarAccess.getManualTaskFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:269:3: ( rule__ManualTaskFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:269:4: rule__ManualTaskFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ManualTaskFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getManualTaskFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleManualTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleScriptTaskFlowElement"
+    // InternalTestgeneratorDSL.g:278:1: entryRuleScriptTaskFlowElement : ruleScriptTaskFlowElement EOF ;
+    public final void entryRuleScriptTaskFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:279:1: ( ruleScriptTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:280:1: ruleScriptTaskFlowElement EOF
+            {
+             before(grammarAccess.getScriptTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleScriptTaskFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getScriptTaskFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleScriptTaskFlowElement"
+
+
+    // $ANTLR start "ruleScriptTaskFlowElement"
+    // InternalTestgeneratorDSL.g:287:1: ruleScriptTaskFlowElement : ( ( rule__ScriptTaskFlowElement__Group__0 ) ) ;
+    public final void ruleScriptTaskFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:291:2: ( ( ( rule__ScriptTaskFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:292:2: ( ( rule__ScriptTaskFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:292:2: ( ( rule__ScriptTaskFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:293:3: ( rule__ScriptTaskFlowElement__Group__0 )
+            {
+             before(grammarAccess.getScriptTaskFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:294:3: ( rule__ScriptTaskFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:294:4: rule__ScriptTaskFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ScriptTaskFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getScriptTaskFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleScriptTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:303:1: entryRuleServiceTaskFlowElement : ruleServiceTaskFlowElement EOF ;
+    public final void entryRuleServiceTaskFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:304:1: ( ruleServiceTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:305:1: ruleServiceTaskFlowElement EOF
+            {
+             before(grammarAccess.getServiceTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleServiceTaskFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getServiceTaskFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleServiceTaskFlowElement"
+
+
+    // $ANTLR start "ruleServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:312:1: ruleServiceTaskFlowElement : ( ( rule__ServiceTaskFlowElement__Alternatives ) ) ;
+    public final void ruleServiceTaskFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:316:2: ( ( ( rule__ServiceTaskFlowElement__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:317:2: ( ( rule__ServiceTaskFlowElement__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:317:2: ( ( rule__ServiceTaskFlowElement__Alternatives ) )
+            // InternalTestgeneratorDSL.g:318:3: ( rule__ServiceTaskFlowElement__Alternatives )
+            {
+             before(grammarAccess.getServiceTaskFlowElementAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:319:3: ( rule__ServiceTaskFlowElement__Alternatives )
+            // InternalTestgeneratorDSL.g:319:4: rule__ServiceTaskFlowElement__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__ServiceTaskFlowElement__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getServiceTaskFlowElementAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleServiceTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleDelegateServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:328:1: entryRuleDelegateServiceTaskFlowElement : ruleDelegateServiceTaskFlowElement EOF ;
+    public final void entryRuleDelegateServiceTaskFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:329:1: ( ruleDelegateServiceTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:330:1: ruleDelegateServiceTaskFlowElement EOF
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleDelegateServiceTaskFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getDelegateServiceTaskFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDelegateServiceTaskFlowElement"
+
+
+    // $ANTLR start "ruleDelegateServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:337:1: ruleDelegateServiceTaskFlowElement : ( ( rule__DelegateServiceTaskFlowElement__Group__0 ) ) ;
+    public final void ruleDelegateServiceTaskFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:341:2: ( ( ( rule__DelegateServiceTaskFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:342:2: ( ( rule__DelegateServiceTaskFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:342:2: ( ( rule__DelegateServiceTaskFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:343:3: ( rule__DelegateServiceTaskFlowElement__Group__0 )
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:344:3: ( rule__DelegateServiceTaskFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:344:4: rule__DelegateServiceTaskFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDelegateServiceTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleExternalServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:353:1: entryRuleExternalServiceTaskFlowElement : ruleExternalServiceTaskFlowElement EOF ;
+    public final void entryRuleExternalServiceTaskFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:354:1: ( ruleExternalServiceTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:355:1: ruleExternalServiceTaskFlowElement EOF
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleExternalServiceTaskFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalServiceTaskFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleExternalServiceTaskFlowElement"
+
+
+    // $ANTLR start "ruleExternalServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:362:1: ruleExternalServiceTaskFlowElement : ( ( rule__ExternalServiceTaskFlowElement__Group__0 ) ) ;
+    public final void ruleExternalServiceTaskFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:366:2: ( ( ( rule__ExternalServiceTaskFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:367:2: ( ( rule__ExternalServiceTaskFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:367:2: ( ( rule__ExternalServiceTaskFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:368:3: ( rule__ExternalServiceTaskFlowElement__Group__0 )
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:369:3: ( rule__ExternalServiceTaskFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:369:4: rule__ExternalServiceTaskFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleExternalServiceTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleBusinessRuleTaskFlowElement"
+    // InternalTestgeneratorDSL.g:378:1: entryRuleBusinessRuleTaskFlowElement : ruleBusinessRuleTaskFlowElement EOF ;
+    public final void entryRuleBusinessRuleTaskFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:379:1: ( ruleBusinessRuleTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:380:1: ruleBusinessRuleTaskFlowElement EOF
+            {
+             before(grammarAccess.getBusinessRuleTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBusinessRuleTaskFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getBusinessRuleTaskFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBusinessRuleTaskFlowElement"
+
+
+    // $ANTLR start "ruleBusinessRuleTaskFlowElement"
+    // InternalTestgeneratorDSL.g:387:1: ruleBusinessRuleTaskFlowElement : ( ( rule__BusinessRuleTaskFlowElement__Group__0 ) ) ;
+    public final void ruleBusinessRuleTaskFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:391:2: ( ( ( rule__BusinessRuleTaskFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:392:2: ( ( rule__BusinessRuleTaskFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:392:2: ( ( rule__BusinessRuleTaskFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:393:3: ( rule__BusinessRuleTaskFlowElement__Group__0 )
+            {
+             before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:394:3: ( rule__BusinessRuleTaskFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:394:4: rule__BusinessRuleTaskFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BusinessRuleTaskFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBusinessRuleTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleGatewayFlowElement"
+    // InternalTestgeneratorDSL.g:403:1: entryRuleGatewayFlowElement : ruleGatewayFlowElement EOF ;
+    public final void entryRuleGatewayFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:404:1: ( ruleGatewayFlowElement EOF )
+            // InternalTestgeneratorDSL.g:405:1: ruleGatewayFlowElement EOF
+            {
+             before(grammarAccess.getGatewayFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleGatewayFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getGatewayFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleGatewayFlowElement"
+
+
+    // $ANTLR start "ruleGatewayFlowElement"
+    // InternalTestgeneratorDSL.g:412:1: ruleGatewayFlowElement : ( ( rule__GatewayFlowElement__Group__0 ) ) ;
+    public final void ruleGatewayFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:416:2: ( ( ( rule__GatewayFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:417:2: ( ( rule__GatewayFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:417:2: ( ( rule__GatewayFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:418:3: ( rule__GatewayFlowElement__Group__0 )
+            {
+             before(grammarAccess.getGatewayFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:419:3: ( rule__GatewayFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:419:4: rule__GatewayFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__GatewayFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGatewayFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleGatewayFlowElement"
+
+
+    // $ANTLR start "entryRuleSequenceFlowElement"
+    // InternalTestgeneratorDSL.g:428:1: entryRuleSequenceFlowElement : ruleSequenceFlowElement EOF ;
+    public final void entryRuleSequenceFlowElement() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:429:1: ( ruleSequenceFlowElement EOF )
+            // InternalTestgeneratorDSL.g:430:1: ruleSequenceFlowElement EOF
+            {
+             before(grammarAccess.getSequenceFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            ruleSequenceFlowElement();
+
+            state._fsp--;
+
+             after(grammarAccess.getSequenceFlowElementRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleSequenceFlowElement"
+
+
+    // $ANTLR start "ruleSequenceFlowElement"
+    // InternalTestgeneratorDSL.g:437:1: ruleSequenceFlowElement : ( ( rule__SequenceFlowElement__Group__0 ) ) ;
+    public final void ruleSequenceFlowElement() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:441:2: ( ( ( rule__SequenceFlowElement__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:442:2: ( ( rule__SequenceFlowElement__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:442:2: ( ( rule__SequenceFlowElement__Group__0 ) )
+            // InternalTestgeneratorDSL.g:443:3: ( rule__SequenceFlowElement__Group__0 )
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:444:3: ( rule__SequenceFlowElement__Group__0 )
+            // InternalTestgeneratorDSL.g:444:4: rule__SequenceFlowElement__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSequenceFlowElementAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSequenceFlowElement"
+
+
+    // $ANTLR start "entryRuleFlowElementReference"
+    // InternalTestgeneratorDSL.g:453:1: entryRuleFlowElementReference : ruleFlowElementReference EOF ;
+    public final void entryRuleFlowElementReference() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:454:1: ( ruleFlowElementReference EOF )
+            // InternalTestgeneratorDSL.g:455:1: ruleFlowElementReference EOF
+            {
+             before(grammarAccess.getFlowElementReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            ruleFlowElementReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowElementReferenceRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFlowElementReference"
+
+
+    // $ANTLR start "ruleFlowElementReference"
+    // InternalTestgeneratorDSL.g:462:1: ruleFlowElementReference : ( ( rule__FlowElementReference__RefAssignment ) ) ;
+    public final void ruleFlowElementReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:466:2: ( ( ( rule__FlowElementReference__RefAssignment ) ) )
+            // InternalTestgeneratorDSL.g:467:2: ( ( rule__FlowElementReference__RefAssignment ) )
+            {
+            // InternalTestgeneratorDSL.g:467:2: ( ( rule__FlowElementReference__RefAssignment ) )
+            // InternalTestgeneratorDSL.g:468:3: ( rule__FlowElementReference__RefAssignment )
+            {
+             before(grammarAccess.getFlowElementReferenceAccess().getRefAssignment()); 
+            // InternalTestgeneratorDSL.g:469:3: ( rule__FlowElementReference__RefAssignment )
+            // InternalTestgeneratorDSL.g:469:4: rule__FlowElementReference__RefAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__FlowElementReference__RefAssignment();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowElementReferenceAccess().getRefAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFlowElementReference"
+
+
+    // $ANTLR start "entryRuleDelegateServiceTaskReference"
+    // InternalTestgeneratorDSL.g:478:1: entryRuleDelegateServiceTaskReference : ruleDelegateServiceTaskReference EOF ;
+    public final void entryRuleDelegateServiceTaskReference() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:479:1: ( ruleDelegateServiceTaskReference EOF )
+            // InternalTestgeneratorDSL.g:480:1: ruleDelegateServiceTaskReference EOF
+            {
+             before(grammarAccess.getDelegateServiceTaskReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            ruleDelegateServiceTaskReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getDelegateServiceTaskReferenceRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDelegateServiceTaskReference"
+
+
+    // $ANTLR start "ruleDelegateServiceTaskReference"
+    // InternalTestgeneratorDSL.g:487:1: ruleDelegateServiceTaskReference : ( ( rule__DelegateServiceTaskReference__RefAssignment ) ) ;
+    public final void ruleDelegateServiceTaskReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:491:2: ( ( ( rule__DelegateServiceTaskReference__RefAssignment ) ) )
+            // InternalTestgeneratorDSL.g:492:2: ( ( rule__DelegateServiceTaskReference__RefAssignment ) )
+            {
+            // InternalTestgeneratorDSL.g:492:2: ( ( rule__DelegateServiceTaskReference__RefAssignment ) )
+            // InternalTestgeneratorDSL.g:493:3: ( rule__DelegateServiceTaskReference__RefAssignment )
+            {
+             before(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefAssignment()); 
+            // InternalTestgeneratorDSL.g:494:3: ( rule__DelegateServiceTaskReference__RefAssignment )
+            // InternalTestgeneratorDSL.g:494:4: rule__DelegateServiceTaskReference__RefAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskReference__RefAssignment();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDelegateServiceTaskReference"
+
+
+    // $ANTLR start "entryRuleExternalTopic"
+    // InternalTestgeneratorDSL.g:503:1: entryRuleExternalTopic : ruleExternalTopic EOF ;
+    public final void entryRuleExternalTopic() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:504:1: ( ruleExternalTopic EOF )
+            // InternalTestgeneratorDSL.g:505:1: ruleExternalTopic EOF
+            {
+             before(grammarAccess.getExternalTopicRule()); 
+            pushFollow(FOLLOW_1);
+            ruleExternalTopic();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalTopicRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleExternalTopic"
+
+
+    // $ANTLR start "ruleExternalTopic"
+    // InternalTestgeneratorDSL.g:512:1: ruleExternalTopic : ( ( rule__ExternalTopic__Group__0 ) ) ;
+    public final void ruleExternalTopic() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:516:2: ( ( ( rule__ExternalTopic__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:517:2: ( ( rule__ExternalTopic__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:517:2: ( ( rule__ExternalTopic__Group__0 ) )
+            // InternalTestgeneratorDSL.g:518:3: ( rule__ExternalTopic__Group__0 )
+            {
+             before(grammarAccess.getExternalTopicAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:519:3: ( rule__ExternalTopic__Group__0 )
+            // InternalTestgeneratorDSL.g:519:4: rule__ExternalTopic__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalTopic__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalTopicAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleExternalTopic"
+
+
+    // $ANTLR start "entryRuleExternalTopicReference"
+    // InternalTestgeneratorDSL.g:528:1: entryRuleExternalTopicReference : ruleExternalTopicReference EOF ;
+    public final void entryRuleExternalTopicReference() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:529:1: ( ruleExternalTopicReference EOF )
+            // InternalTestgeneratorDSL.g:530:1: ruleExternalTopicReference EOF
+            {
+             before(grammarAccess.getExternalTopicReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            ruleExternalTopicReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalTopicReferenceRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleExternalTopicReference"
+
+
+    // $ANTLR start "ruleExternalTopicReference"
+    // InternalTestgeneratorDSL.g:537:1: ruleExternalTopicReference : ( ( rule__ExternalTopicReference__RefAssignment ) ) ;
+    public final void ruleExternalTopicReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:541:2: ( ( ( rule__ExternalTopicReference__RefAssignment ) ) )
+            // InternalTestgeneratorDSL.g:542:2: ( ( rule__ExternalTopicReference__RefAssignment ) )
+            {
+            // InternalTestgeneratorDSL.g:542:2: ( ( rule__ExternalTopicReference__RefAssignment ) )
+            // InternalTestgeneratorDSL.g:543:3: ( rule__ExternalTopicReference__RefAssignment )
+            {
+             before(grammarAccess.getExternalTopicReferenceAccess().getRefAssignment()); 
+            // InternalTestgeneratorDSL.g:544:3: ( rule__ExternalTopicReference__RefAssignment )
+            // InternalTestgeneratorDSL.g:544:4: rule__ExternalTopicReference__RefAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalTopicReference__RefAssignment();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalTopicReferenceAccess().getRefAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleExternalTopicReference"
+
+
+    // $ANTLR start "entryRuleVariable"
+    // InternalTestgeneratorDSL.g:553:1: entryRuleVariable : ruleVariable EOF ;
+    public final void entryRuleVariable() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:554:1: ( ruleVariable EOF )
+            // InternalTestgeneratorDSL.g:555:1: ruleVariable EOF
+            {
+             before(grammarAccess.getVariableRule()); 
+            pushFollow(FOLLOW_1);
+            ruleVariable();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVariable"
+
+
+    // $ANTLR start "ruleVariable"
+    // InternalTestgeneratorDSL.g:562:1: ruleVariable : ( ( rule__Variable__Alternatives ) ) ;
+    public final void ruleVariable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:566:2: ( ( ( rule__Variable__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:567:2: ( ( rule__Variable__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:567:2: ( ( rule__Variable__Alternatives ) )
+            // InternalTestgeneratorDSL.g:568:3: ( rule__Variable__Alternatives )
+            {
+             before(grammarAccess.getVariableAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:569:3: ( rule__Variable__Alternatives )
+            // InternalTestgeneratorDSL.g:569:4: rule__Variable__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Variable__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVariable"
+
+
+    // $ANTLR start "entryRuleVariableReference"
+    // InternalTestgeneratorDSL.g:578:1: entryRuleVariableReference : ruleVariableReference EOF ;
+    public final void entryRuleVariableReference() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:579:1: ( ruleVariableReference EOF )
+            // InternalTestgeneratorDSL.g:580:1: ruleVariableReference EOF
+            {
+             before(grammarAccess.getVariableReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            ruleVariableReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableReferenceRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVariableReference"
+
+
+    // $ANTLR start "ruleVariableReference"
+    // InternalTestgeneratorDSL.g:587:1: ruleVariableReference : ( ( rule__VariableReference__RefAssignment ) ) ;
+    public final void ruleVariableReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:591:2: ( ( ( rule__VariableReference__RefAssignment ) ) )
+            // InternalTestgeneratorDSL.g:592:2: ( ( rule__VariableReference__RefAssignment ) )
+            {
+            // InternalTestgeneratorDSL.g:592:2: ( ( rule__VariableReference__RefAssignment ) )
+            // InternalTestgeneratorDSL.g:593:3: ( rule__VariableReference__RefAssignment )
+            {
+             before(grammarAccess.getVariableReferenceAccess().getRefAssignment()); 
+            // InternalTestgeneratorDSL.g:594:3: ( rule__VariableReference__RefAssignment )
+            // InternalTestgeneratorDSL.g:594:4: rule__VariableReference__RefAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableReference__RefAssignment();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableReferenceAccess().getRefAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVariableReference"
+
+
+    // $ANTLR start "entryRuleStringVariable"
+    // InternalTestgeneratorDSL.g:603:1: entryRuleStringVariable : ruleStringVariable EOF ;
+    public final void entryRuleStringVariable() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:604:1: ( ruleStringVariable EOF )
+            // InternalTestgeneratorDSL.g:605:1: ruleStringVariable EOF
+            {
+             before(grammarAccess.getStringVariableRule()); 
+            pushFollow(FOLLOW_1);
+            ruleStringVariable();
+
+            state._fsp--;
+
+             after(grammarAccess.getStringVariableRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStringVariable"
+
+
+    // $ANTLR start "ruleStringVariable"
+    // InternalTestgeneratorDSL.g:612:1: ruleStringVariable : ( ( rule__StringVariable__Group__0 ) ) ;
+    public final void ruleStringVariable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:616:2: ( ( ( rule__StringVariable__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:617:2: ( ( rule__StringVariable__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:617:2: ( ( rule__StringVariable__Group__0 ) )
+            // InternalTestgeneratorDSL.g:618:3: ( rule__StringVariable__Group__0 )
+            {
+             before(grammarAccess.getStringVariableAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:619:3: ( rule__StringVariable__Group__0 )
+            // InternalTestgeneratorDSL.g:619:4: rule__StringVariable__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStringVariable"
+
+
+    // $ANTLR start "entryRuleIntVariable"
+    // InternalTestgeneratorDSL.g:628:1: entryRuleIntVariable : ruleIntVariable EOF ;
+    public final void entryRuleIntVariable() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:629:1: ( ruleIntVariable EOF )
+            // InternalTestgeneratorDSL.g:630:1: ruleIntVariable EOF
+            {
+             before(grammarAccess.getIntVariableRule()); 
+            pushFollow(FOLLOW_1);
+            ruleIntVariable();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntVariableRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIntVariable"
+
+
+    // $ANTLR start "ruleIntVariable"
+    // InternalTestgeneratorDSL.g:637:1: ruleIntVariable : ( ( rule__IntVariable__Group__0 ) ) ;
+    public final void ruleIntVariable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:641:2: ( ( ( rule__IntVariable__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:642:2: ( ( rule__IntVariable__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:642:2: ( ( rule__IntVariable__Group__0 ) )
+            // InternalTestgeneratorDSL.g:643:3: ( rule__IntVariable__Group__0 )
+            {
+             before(grammarAccess.getIntVariableAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:644:3: ( rule__IntVariable__Group__0 )
+            // InternalTestgeneratorDSL.g:644:4: rule__IntVariable__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIntVariable"
+
+
+    // $ANTLR start "entryRuleBooleanVariable"
+    // InternalTestgeneratorDSL.g:653:1: entryRuleBooleanVariable : ruleBooleanVariable EOF ;
+    public final void entryRuleBooleanVariable() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:654:1: ( ruleBooleanVariable EOF )
+            // InternalTestgeneratorDSL.g:655:1: ruleBooleanVariable EOF
+            {
+             before(grammarAccess.getBooleanVariableRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBooleanVariable();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBooleanVariable"
+
+
+    // $ANTLR start "ruleBooleanVariable"
+    // InternalTestgeneratorDSL.g:662:1: ruleBooleanVariable : ( ( rule__BooleanVariable__Group__0 ) ) ;
+    public final void ruleBooleanVariable() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:666:2: ( ( ( rule__BooleanVariable__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:667:2: ( ( rule__BooleanVariable__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:667:2: ( ( rule__BooleanVariable__Group__0 ) )
+            // InternalTestgeneratorDSL.g:668:3: ( rule__BooleanVariable__Group__0 )
+            {
+             before(grammarAccess.getBooleanVariableAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:669:3: ( rule__BooleanVariable__Group__0 )
+            // InternalTestgeneratorDSL.g:669:4: rule__BooleanVariable__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBooleanVariable"
+
+
+    // $ANTLR start "entryRuleLoop"
+    // InternalTestgeneratorDSL.g:678:1: entryRuleLoop : ruleLoop EOF ;
+    public final void entryRuleLoop() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:679:1: ( ruleLoop EOF )
+            // InternalTestgeneratorDSL.g:680:1: ruleLoop EOF
+            {
+             before(grammarAccess.getLoopRule()); 
+            pushFollow(FOLLOW_1);
+            ruleLoop();
+
+            state._fsp--;
+
+             after(grammarAccess.getLoopRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleLoop"
+
+
+    // $ANTLR start "ruleLoop"
+    // InternalTestgeneratorDSL.g:687:1: ruleLoop : ( ( rule__Loop__Group__0 ) ) ;
+    public final void ruleLoop() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:691:2: ( ( ( rule__Loop__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:692:2: ( ( rule__Loop__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:692:2: ( ( rule__Loop__Group__0 ) )
+            // InternalTestgeneratorDSL.g:693:3: ( rule__Loop__Group__0 )
+            {
+             before(grammarAccess.getLoopAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:694:3: ( rule__Loop__Group__0 )
+            // InternalTestgeneratorDSL.g:694:4: rule__Loop__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            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 "entryRuleFlow"
+    // InternalTestgeneratorDSL.g:703:1: entryRuleFlow : ruleFlow EOF ;
+    public final void entryRuleFlow() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:704:1: ( ruleFlow EOF )
+            // InternalTestgeneratorDSL.g:705:1: ruleFlow EOF
+            {
+             before(grammarAccess.getFlowRule()); 
+            pushFollow(FOLLOW_1);
+            ruleFlow();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFlow"
+
+
+    // $ANTLR start "ruleFlow"
+    // InternalTestgeneratorDSL.g:712:1: ruleFlow : ( ( rule__Flow__Group__0 ) ) ;
+    public final void ruleFlow() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:716:2: ( ( ( rule__Flow__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:717:2: ( ( rule__Flow__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:717:2: ( ( rule__Flow__Group__0 ) )
+            // InternalTestgeneratorDSL.g:718:3: ( rule__Flow__Group__0 )
+            {
+             before(grammarAccess.getFlowAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:719:3: ( rule__Flow__Group__0 )
+            // InternalTestgeneratorDSL.g:719:4: rule__Flow__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFlow"
+
+
+    // $ANTLR start "entryRuleFlowReference"
+    // InternalTestgeneratorDSL.g:728:1: entryRuleFlowReference : ruleFlowReference EOF ;
+    public final void entryRuleFlowReference() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:729:1: ( ruleFlowReference EOF )
+            // InternalTestgeneratorDSL.g:730:1: ruleFlowReference EOF
+            {
+             before(grammarAccess.getFlowReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            ruleFlowReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowReferenceRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFlowReference"
+
+
+    // $ANTLR start "ruleFlowReference"
+    // InternalTestgeneratorDSL.g:737:1: ruleFlowReference : ( ( rule__FlowReference__RefAssignment ) ) ;
+    public final void ruleFlowReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:741:2: ( ( ( rule__FlowReference__RefAssignment ) ) )
+            // InternalTestgeneratorDSL.g:742:2: ( ( rule__FlowReference__RefAssignment ) )
+            {
+            // InternalTestgeneratorDSL.g:742:2: ( ( rule__FlowReference__RefAssignment ) )
+            // InternalTestgeneratorDSL.g:743:3: ( rule__FlowReference__RefAssignment )
+            {
+             before(grammarAccess.getFlowReferenceAccess().getRefAssignment()); 
+            // InternalTestgeneratorDSL.g:744:3: ( rule__FlowReference__RefAssignment )
+            // InternalTestgeneratorDSL.g:744:4: rule__FlowReference__RefAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__FlowReference__RefAssignment();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowReferenceAccess().getRefAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFlowReference"
+
+
+    // $ANTLR start "entryRuleTest"
+    // InternalTestgeneratorDSL.g:753:1: entryRuleTest : ruleTest EOF ;
+    public final void entryRuleTest() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:754:1: ( ruleTest EOF )
+            // InternalTestgeneratorDSL.g:755:1: ruleTest EOF
+            {
+             before(grammarAccess.getTestRule()); 
+            pushFollow(FOLLOW_1);
+            ruleTest();
+
+            state._fsp--;
+
+             after(grammarAccess.getTestRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTest"
+
+
+    // $ANTLR start "ruleTest"
+    // InternalTestgeneratorDSL.g:762:1: ruleTest : ( ( rule__Test__Group__0 ) ) ;
+    public final void ruleTest() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:766:2: ( ( ( rule__Test__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:767:2: ( ( rule__Test__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:767:2: ( ( rule__Test__Group__0 ) )
+            // InternalTestgeneratorDSL.g:768:3: ( rule__Test__Group__0 )
+            {
+             before(grammarAccess.getTestAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:769:3: ( rule__Test__Group__0 )
+            // InternalTestgeneratorDSL.g:769:4: rule__Test__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTestAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTest"
+
+
+    // $ANTLR start "entryRuleVariableDeclarations"
+    // InternalTestgeneratorDSL.g:778:1: entryRuleVariableDeclarations : ruleVariableDeclarations EOF ;
+    public final void entryRuleVariableDeclarations() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:779:1: ( ruleVariableDeclarations EOF )
+            // InternalTestgeneratorDSL.g:780:1: ruleVariableDeclarations EOF
+            {
+             before(grammarAccess.getVariableDeclarationsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleVariableDeclarations();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableDeclarationsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVariableDeclarations"
+
+
+    // $ANTLR start "ruleVariableDeclarations"
+    // InternalTestgeneratorDSL.g:787:1: ruleVariableDeclarations : ( ( rule__VariableDeclarations__Group__0 ) ) ;
+    public final void ruleVariableDeclarations() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:791:2: ( ( ( rule__VariableDeclarations__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:792:2: ( ( rule__VariableDeclarations__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:792:2: ( ( rule__VariableDeclarations__Group__0 ) )
+            // InternalTestgeneratorDSL.g:793:3: ( rule__VariableDeclarations__Group__0 )
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:794:3: ( rule__VariableDeclarations__Group__0 )
+            // InternalTestgeneratorDSL.g:794:4: rule__VariableDeclarations__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableDeclarationsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVariableDeclarations"
+
+
+    // $ANTLR start "entryRuleEndChecks"
+    // InternalTestgeneratorDSL.g:803:1: entryRuleEndChecks : ruleEndChecks EOF ;
+    public final void entryRuleEndChecks() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:804:1: ( ruleEndChecks EOF )
+            // InternalTestgeneratorDSL.g:805:1: ruleEndChecks EOF
+            {
+             before(grammarAccess.getEndChecksRule()); 
+            pushFollow(FOLLOW_1);
+            ruleEndChecks();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndChecksRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEndChecks"
+
+
+    // $ANTLR start "ruleEndChecks"
+    // InternalTestgeneratorDSL.g:812:1: ruleEndChecks : ( ( rule__EndChecks__Group__0 ) ) ;
+    public final void ruleEndChecks() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:816:2: ( ( ( rule__EndChecks__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:817:2: ( ( rule__EndChecks__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:817:2: ( ( rule__EndChecks__Group__0 ) )
+            // InternalTestgeneratorDSL.g:818:3: ( rule__EndChecks__Group__0 )
+            {
+             before(grammarAccess.getEndChecksAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:819:3: ( rule__EndChecks__Group__0 )
+            // InternalTestgeneratorDSL.g:819:4: rule__EndChecks__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndChecksAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEndChecks"
+
+
+    // $ANTLR start "entryRuleVariableDeclaration"
+    // InternalTestgeneratorDSL.g:828:1: entryRuleVariableDeclaration : ruleVariableDeclaration EOF ;
+    public final void entryRuleVariableDeclaration() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:829:1: ( ruleVariableDeclaration EOF )
+            // InternalTestgeneratorDSL.g:830:1: ruleVariableDeclaration EOF
+            {
+             before(grammarAccess.getVariableDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            ruleVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableDeclarationRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVariableDeclaration"
+
+
+    // $ANTLR start "ruleVariableDeclaration"
+    // InternalTestgeneratorDSL.g:837:1: ruleVariableDeclaration : ( ( rule__VariableDeclaration__Alternatives ) ) ;
+    public final void ruleVariableDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:841:2: ( ( ( rule__VariableDeclaration__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:842:2: ( ( rule__VariableDeclaration__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:842:2: ( ( rule__VariableDeclaration__Alternatives ) )
+            // InternalTestgeneratorDSL.g:843:3: ( rule__VariableDeclaration__Alternatives )
+            {
+             before(grammarAccess.getVariableDeclarationAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:844:3: ( rule__VariableDeclaration__Alternatives )
+            // InternalTestgeneratorDSL.g:844:4: rule__VariableDeclaration__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclaration__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableDeclarationAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleStringVariableDeclaration"
+    // InternalTestgeneratorDSL.g:853:1: entryRuleStringVariableDeclaration : ruleStringVariableDeclaration EOF ;
+    public final void entryRuleStringVariableDeclaration() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:854:1: ( ruleStringVariableDeclaration EOF )
+            // InternalTestgeneratorDSL.g:855:1: ruleStringVariableDeclaration EOF
+            {
+             before(grammarAccess.getStringVariableDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            ruleStringVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getStringVariableDeclarationRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStringVariableDeclaration"
+
+
+    // $ANTLR start "ruleStringVariableDeclaration"
+    // InternalTestgeneratorDSL.g:862:1: ruleStringVariableDeclaration : ( ( rule__StringVariableDeclaration__Group__0 ) ) ;
+    public final void ruleStringVariableDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:866:2: ( ( ( rule__StringVariableDeclaration__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:867:2: ( ( rule__StringVariableDeclaration__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:867:2: ( ( rule__StringVariableDeclaration__Group__0 ) )
+            // InternalTestgeneratorDSL.g:868:3: ( rule__StringVariableDeclaration__Group__0 )
+            {
+             before(grammarAccess.getStringVariableDeclarationAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:869:3: ( rule__StringVariableDeclaration__Group__0 )
+            // InternalTestgeneratorDSL.g:869:4: rule__StringVariableDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableDeclaration__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableDeclarationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStringVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleIntVariableDeclaration"
+    // InternalTestgeneratorDSL.g:878:1: entryRuleIntVariableDeclaration : ruleIntVariableDeclaration EOF ;
+    public final void entryRuleIntVariableDeclaration() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:879:1: ( ruleIntVariableDeclaration EOF )
+            // InternalTestgeneratorDSL.g:880:1: ruleIntVariableDeclaration EOF
+            {
+             before(grammarAccess.getIntVariableDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            ruleIntVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntVariableDeclarationRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIntVariableDeclaration"
+
+
+    // $ANTLR start "ruleIntVariableDeclaration"
+    // InternalTestgeneratorDSL.g:887:1: ruleIntVariableDeclaration : ( ( rule__IntVariableDeclaration__Group__0 ) ) ;
+    public final void ruleIntVariableDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:891:2: ( ( ( rule__IntVariableDeclaration__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:892:2: ( ( rule__IntVariableDeclaration__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:892:2: ( ( rule__IntVariableDeclaration__Group__0 ) )
+            // InternalTestgeneratorDSL.g:893:3: ( rule__IntVariableDeclaration__Group__0 )
+            {
+             before(grammarAccess.getIntVariableDeclarationAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:894:3: ( rule__IntVariableDeclaration__Group__0 )
+            // InternalTestgeneratorDSL.g:894:4: rule__IntVariableDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableDeclaration__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableDeclarationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIntVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleBooleanVariableDeclaration"
+    // InternalTestgeneratorDSL.g:903:1: entryRuleBooleanVariableDeclaration : ruleBooleanVariableDeclaration EOF ;
+    public final void entryRuleBooleanVariableDeclaration() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:904:1: ( ruleBooleanVariableDeclaration EOF )
+            // InternalTestgeneratorDSL.g:905:1: ruleBooleanVariableDeclaration EOF
+            {
+             before(grammarAccess.getBooleanVariableDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBooleanVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableDeclarationRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBooleanVariableDeclaration"
+
+
+    // $ANTLR start "ruleBooleanVariableDeclaration"
+    // InternalTestgeneratorDSL.g:912:1: ruleBooleanVariableDeclaration : ( ( rule__BooleanVariableDeclaration__Group__0 ) ) ;
+    public final void ruleBooleanVariableDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:916:2: ( ( ( rule__BooleanVariableDeclaration__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:917:2: ( ( rule__BooleanVariableDeclaration__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:917:2: ( ( rule__BooleanVariableDeclaration__Group__0 ) )
+            // InternalTestgeneratorDSL.g:918:3: ( rule__BooleanVariableDeclaration__Group__0 )
+            {
+             before(grammarAccess.getBooleanVariableDeclarationAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:919:3: ( rule__BooleanVariableDeclaration__Group__0 )
+            // InternalTestgeneratorDSL.g:919:4: rule__BooleanVariableDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableDeclaration__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableDeclarationAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBooleanVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleEndCheck"
+    // InternalTestgeneratorDSL.g:928:1: entryRuleEndCheck : ruleEndCheck EOF ;
+    public final void entryRuleEndCheck() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:929:1: ( ruleEndCheck EOF )
+            // InternalTestgeneratorDSL.g:930:1: ruleEndCheck EOF
+            {
+             before(grammarAccess.getEndCheckRule()); 
+            pushFollow(FOLLOW_1);
+            ruleEndCheck();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndCheckRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleEndCheck"
+
+
+    // $ANTLR start "ruleEndCheck"
+    // InternalTestgeneratorDSL.g:937:1: ruleEndCheck : ( ( rule__EndCheck__Alternatives ) ) ;
+    public final void ruleEndCheck() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:941:2: ( ( ( rule__EndCheck__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:942:2: ( ( rule__EndCheck__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:942:2: ( ( rule__EndCheck__Alternatives ) )
+            // InternalTestgeneratorDSL.g:943:3: ( rule__EndCheck__Alternatives )
+            {
+             before(grammarAccess.getEndCheckAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:944:3: ( rule__EndCheck__Alternatives )
+            // InternalTestgeneratorDSL.g:944:4: rule__EndCheck__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndCheck__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndCheckAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleEndCheck"
+
+
+    // $ANTLR start "entryRuleVariableEquals"
+    // InternalTestgeneratorDSL.g:953:1: entryRuleVariableEquals : ruleVariableEquals EOF ;
+    public final void entryRuleVariableEquals() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:954:1: ( ruleVariableEquals EOF )
+            // InternalTestgeneratorDSL.g:955:1: ruleVariableEquals EOF
+            {
+             before(grammarAccess.getVariableEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleVariableEquals();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableEqualsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVariableEquals"
+
+
+    // $ANTLR start "ruleVariableEquals"
+    // InternalTestgeneratorDSL.g:962:1: ruleVariableEquals : ( ( rule__VariableEquals__Alternatives ) ) ;
+    public final void ruleVariableEquals() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:966:2: ( ( ( rule__VariableEquals__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:967:2: ( ( rule__VariableEquals__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:967:2: ( ( rule__VariableEquals__Alternatives ) )
+            // InternalTestgeneratorDSL.g:968:3: ( rule__VariableEquals__Alternatives )
+            {
+             before(grammarAccess.getVariableEqualsAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:969:3: ( rule__VariableEquals__Alternatives )
+            // InternalTestgeneratorDSL.g:969:4: rule__VariableEquals__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableEquals__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableEqualsAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVariableEquals"
+
+
+    // $ANTLR start "entryRuleStringVariableEquals"
+    // InternalTestgeneratorDSL.g:978:1: entryRuleStringVariableEquals : ruleStringVariableEquals EOF ;
+    public final void entryRuleStringVariableEquals() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:979:1: ( ruleStringVariableEquals EOF )
+            // InternalTestgeneratorDSL.g:980:1: ruleStringVariableEquals EOF
+            {
+             before(grammarAccess.getStringVariableEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleStringVariableEquals();
+
+            state._fsp--;
+
+             after(grammarAccess.getStringVariableEqualsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStringVariableEquals"
+
+
+    // $ANTLR start "ruleStringVariableEquals"
+    // InternalTestgeneratorDSL.g:987:1: ruleStringVariableEquals : ( ( rule__StringVariableEquals__Group__0 ) ) ;
+    public final void ruleStringVariableEquals() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:991:2: ( ( ( rule__StringVariableEquals__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:992:2: ( ( rule__StringVariableEquals__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:992:2: ( ( rule__StringVariableEquals__Group__0 ) )
+            // InternalTestgeneratorDSL.g:993:3: ( rule__StringVariableEquals__Group__0 )
+            {
+             before(grammarAccess.getStringVariableEqualsAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:994:3: ( rule__StringVariableEquals__Group__0 )
+            // InternalTestgeneratorDSL.g:994:4: rule__StringVariableEquals__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableEquals__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableEqualsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStringVariableEquals"
+
+
+    // $ANTLR start "entryRuleIntVariableEquals"
+    // InternalTestgeneratorDSL.g:1003:1: entryRuleIntVariableEquals : ruleIntVariableEquals EOF ;
+    public final void entryRuleIntVariableEquals() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1004:1: ( ruleIntVariableEquals EOF )
+            // InternalTestgeneratorDSL.g:1005:1: ruleIntVariableEquals EOF
+            {
+             before(grammarAccess.getIntVariableEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleIntVariableEquals();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntVariableEqualsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIntVariableEquals"
+
+
+    // $ANTLR start "ruleIntVariableEquals"
+    // InternalTestgeneratorDSL.g:1012:1: ruleIntVariableEquals : ( ( rule__IntVariableEquals__Group__0 ) ) ;
+    public final void ruleIntVariableEquals() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1016:2: ( ( ( rule__IntVariableEquals__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1017:2: ( ( rule__IntVariableEquals__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1017:2: ( ( rule__IntVariableEquals__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1018:3: ( rule__IntVariableEquals__Group__0 )
+            {
+             before(grammarAccess.getIntVariableEqualsAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1019:3: ( rule__IntVariableEquals__Group__0 )
+            // InternalTestgeneratorDSL.g:1019:4: rule__IntVariableEquals__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableEquals__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableEqualsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIntVariableEquals"
+
+
+    // $ANTLR start "entryRuleBooleanVariableEquals"
+    // InternalTestgeneratorDSL.g:1028:1: entryRuleBooleanVariableEquals : ruleBooleanVariableEquals EOF ;
+    public final void entryRuleBooleanVariableEquals() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1029:1: ( ruleBooleanVariableEquals EOF )
+            // InternalTestgeneratorDSL.g:1030:1: ruleBooleanVariableEquals EOF
+            {
+             before(grammarAccess.getBooleanVariableEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBooleanVariableEquals();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableEqualsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBooleanVariableEquals"
+
+
+    // $ANTLR start "ruleBooleanVariableEquals"
+    // InternalTestgeneratorDSL.g:1037:1: ruleBooleanVariableEquals : ( ( rule__BooleanVariableEquals__Group__0 ) ) ;
+    public final void ruleBooleanVariableEquals() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1041:2: ( ( ( rule__BooleanVariableEquals__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1042:2: ( ( rule__BooleanVariableEquals__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1042:2: ( ( rule__BooleanVariableEquals__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1043:3: ( rule__BooleanVariableEquals__Group__0 )
+            {
+             before(grammarAccess.getBooleanVariableEqualsAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1044:3: ( rule__BooleanVariableEquals__Group__0 )
+            // InternalTestgeneratorDSL.g:1044:4: rule__BooleanVariableEquals__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableEquals__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableEqualsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBooleanVariableEquals"
+
+
+    // $ANTLR start "entryRuleVariableNotEquals"
+    // InternalTestgeneratorDSL.g:1053:1: entryRuleVariableNotEquals : ruleVariableNotEquals EOF ;
+    public final void entryRuleVariableNotEquals() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1054:1: ( ruleVariableNotEquals EOF )
+            // InternalTestgeneratorDSL.g:1055:1: ruleVariableNotEquals EOF
+            {
+             before(grammarAccess.getVariableNotEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleVariableNotEquals();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableNotEqualsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleVariableNotEquals"
+
+
+    // $ANTLR start "ruleVariableNotEquals"
+    // InternalTestgeneratorDSL.g:1062:1: ruleVariableNotEquals : ( ( rule__VariableNotEquals__Alternatives ) ) ;
+    public final void ruleVariableNotEquals() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1066:2: ( ( ( rule__VariableNotEquals__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:1067:2: ( ( rule__VariableNotEquals__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:1067:2: ( ( rule__VariableNotEquals__Alternatives ) )
+            // InternalTestgeneratorDSL.g:1068:3: ( rule__VariableNotEquals__Alternatives )
+            {
+             before(grammarAccess.getVariableNotEqualsAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:1069:3: ( rule__VariableNotEquals__Alternatives )
+            // InternalTestgeneratorDSL.g:1069:4: rule__VariableNotEquals__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableNotEquals__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableNotEqualsAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleVariableNotEquals"
+
+
+    // $ANTLR start "entryRuleStringVariableNotEquals"
+    // InternalTestgeneratorDSL.g:1078:1: entryRuleStringVariableNotEquals : ruleStringVariableNotEquals EOF ;
+    public final void entryRuleStringVariableNotEquals() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1079:1: ( ruleStringVariableNotEquals EOF )
+            // InternalTestgeneratorDSL.g:1080:1: ruleStringVariableNotEquals EOF
+            {
+             before(grammarAccess.getStringVariableNotEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleStringVariableNotEquals();
+
+            state._fsp--;
+
+             after(grammarAccess.getStringVariableNotEqualsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStringVariableNotEquals"
+
+
+    // $ANTLR start "ruleStringVariableNotEquals"
+    // InternalTestgeneratorDSL.g:1087:1: ruleStringVariableNotEquals : ( ( rule__StringVariableNotEquals__Group__0 ) ) ;
+    public final void ruleStringVariableNotEquals() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1091:2: ( ( ( rule__StringVariableNotEquals__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1092:2: ( ( rule__StringVariableNotEquals__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1092:2: ( ( rule__StringVariableNotEquals__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1093:3: ( rule__StringVariableNotEquals__Group__0 )
+            {
+             before(grammarAccess.getStringVariableNotEqualsAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1094:3: ( rule__StringVariableNotEquals__Group__0 )
+            // InternalTestgeneratorDSL.g:1094:4: rule__StringVariableNotEquals__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableNotEquals__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableNotEqualsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStringVariableNotEquals"
+
+
+    // $ANTLR start "entryRuleIntVariableNotEquals"
+    // InternalTestgeneratorDSL.g:1103:1: entryRuleIntVariableNotEquals : ruleIntVariableNotEquals EOF ;
+    public final void entryRuleIntVariableNotEquals() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1104:1: ( ruleIntVariableNotEquals EOF )
+            // InternalTestgeneratorDSL.g:1105:1: ruleIntVariableNotEquals EOF
+            {
+             before(grammarAccess.getIntVariableNotEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleIntVariableNotEquals();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntVariableNotEqualsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIntVariableNotEquals"
+
+
+    // $ANTLR start "ruleIntVariableNotEquals"
+    // InternalTestgeneratorDSL.g:1112:1: ruleIntVariableNotEquals : ( ( rule__IntVariableNotEquals__Group__0 ) ) ;
+    public final void ruleIntVariableNotEquals() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1116:2: ( ( ( rule__IntVariableNotEquals__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1117:2: ( ( rule__IntVariableNotEquals__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1117:2: ( ( rule__IntVariableNotEquals__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1118:3: ( rule__IntVariableNotEquals__Group__0 )
+            {
+             before(grammarAccess.getIntVariableNotEqualsAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1119:3: ( rule__IntVariableNotEquals__Group__0 )
+            // InternalTestgeneratorDSL.g:1119:4: rule__IntVariableNotEquals__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableNotEquals__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableNotEqualsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIntVariableNotEquals"
+
+
+    // $ANTLR start "entryRuleBooleanVariableNotEquals"
+    // InternalTestgeneratorDSL.g:1128:1: entryRuleBooleanVariableNotEquals : ruleBooleanVariableNotEquals EOF ;
+    public final void entryRuleBooleanVariableNotEquals() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1129:1: ( ruleBooleanVariableNotEquals EOF )
+            // InternalTestgeneratorDSL.g:1130:1: ruleBooleanVariableNotEquals EOF
+            {
+             before(grammarAccess.getBooleanVariableNotEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBooleanVariableNotEquals();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableNotEqualsRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBooleanVariableNotEquals"
+
+
+    // $ANTLR start "ruleBooleanVariableNotEquals"
+    // InternalTestgeneratorDSL.g:1137:1: ruleBooleanVariableNotEquals : ( ( rule__BooleanVariableNotEquals__Group__0 ) ) ;
+    public final void ruleBooleanVariableNotEquals() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1141:2: ( ( ( rule__BooleanVariableNotEquals__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1142:2: ( ( rule__BooleanVariableNotEquals__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1142:2: ( ( rule__BooleanVariableNotEquals__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1143:3: ( rule__BooleanVariableNotEquals__Group__0 )
+            {
+             before(grammarAccess.getBooleanVariableNotEqualsAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1144:3: ( rule__BooleanVariableNotEquals__Group__0 )
+            // InternalTestgeneratorDSL.g:1144:4: rule__BooleanVariableNotEquals__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableNotEquals__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableNotEqualsAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBooleanVariableNotEquals"
+
+
+    // $ANTLR start "entryRuleMock"
+    // InternalTestgeneratorDSL.g:1153:1: entryRuleMock : ruleMock EOF ;
+    public final void entryRuleMock() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1154:1: ( ruleMock EOF )
+            // InternalTestgeneratorDSL.g:1155:1: ruleMock EOF
+            {
+             before(grammarAccess.getMockRule()); 
+            pushFollow(FOLLOW_1);
+            ruleMock();
+
+            state._fsp--;
+
+             after(grammarAccess.getMockRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleMock"
+
+
+    // $ANTLR start "ruleMock"
+    // InternalTestgeneratorDSL.g:1162:1: ruleMock : ( ( rule__Mock__Alternatives ) ) ;
+    public final void ruleMock() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1166:2: ( ( ( rule__Mock__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:1167:2: ( ( rule__Mock__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:1167:2: ( ( rule__Mock__Alternatives ) )
+            // InternalTestgeneratorDSL.g:1168:3: ( rule__Mock__Alternatives )
+            {
+             before(grammarAccess.getMockAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:1169:3: ( rule__Mock__Alternatives )
+            // InternalTestgeneratorDSL.g:1169:4: rule__Mock__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Mock__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMockAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleMock"
+
+
+    // $ANTLR start "entryRuleMockReference"
+    // InternalTestgeneratorDSL.g:1178:1: entryRuleMockReference : ruleMockReference EOF ;
+    public final void entryRuleMockReference() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1179:1: ( ruleMockReference EOF )
+            // InternalTestgeneratorDSL.g:1180:1: ruleMockReference EOF
+            {
+             before(grammarAccess.getMockReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            ruleMockReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getMockReferenceRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleMockReference"
+
+
+    // $ANTLR start "ruleMockReference"
+    // InternalTestgeneratorDSL.g:1187:1: ruleMockReference : ( ( rule__MockReference__RefAssignment ) ) ;
+    public final void ruleMockReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1191:2: ( ( ( rule__MockReference__RefAssignment ) ) )
+            // InternalTestgeneratorDSL.g:1192:2: ( ( rule__MockReference__RefAssignment ) )
+            {
+            // InternalTestgeneratorDSL.g:1192:2: ( ( rule__MockReference__RefAssignment ) )
+            // InternalTestgeneratorDSL.g:1193:3: ( rule__MockReference__RefAssignment )
+            {
+             before(grammarAccess.getMockReferenceAccess().getRefAssignment()); 
+            // InternalTestgeneratorDSL.g:1194:3: ( rule__MockReference__RefAssignment )
+            // InternalTestgeneratorDSL.g:1194:4: rule__MockReference__RefAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockReference__RefAssignment();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMockReferenceAccess().getRefAssignment()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleMockReference"
+
+
+    // $ANTLR start "entryRuleExternalServiceMock"
+    // InternalTestgeneratorDSL.g:1203:1: entryRuleExternalServiceMock : ruleExternalServiceMock EOF ;
+    public final void entryRuleExternalServiceMock() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1204:1: ( ruleExternalServiceMock EOF )
+            // InternalTestgeneratorDSL.g:1205:1: ruleExternalServiceMock EOF
+            {
+             before(grammarAccess.getExternalServiceMockRule()); 
+            pushFollow(FOLLOW_1);
+            ruleExternalServiceMock();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalServiceMockRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleExternalServiceMock"
+
+
+    // $ANTLR start "ruleExternalServiceMock"
+    // InternalTestgeneratorDSL.g:1212:1: ruleExternalServiceMock : ( ( rule__ExternalServiceMock__Group__0 ) ) ;
+    public final void ruleExternalServiceMock() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1216:2: ( ( ( rule__ExternalServiceMock__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1217:2: ( ( rule__ExternalServiceMock__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1217:2: ( ( rule__ExternalServiceMock__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1218:3: ( rule__ExternalServiceMock__Group__0 )
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1219:3: ( rule__ExternalServiceMock__Group__0 )
+            // InternalTestgeneratorDSL.g:1219:4: rule__ExternalServiceMock__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceMockAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleExternalServiceMock"
+
+
+    // $ANTLR start "entryRuleDelegateMock"
+    // InternalTestgeneratorDSL.g:1228:1: entryRuleDelegateMock : ruleDelegateMock EOF ;
+    public final void entryRuleDelegateMock() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1229:1: ( ruleDelegateMock EOF )
+            // InternalTestgeneratorDSL.g:1230:1: ruleDelegateMock EOF
+            {
+             before(grammarAccess.getDelegateMockRule()); 
+            pushFollow(FOLLOW_1);
+            ruleDelegateMock();
+
+            state._fsp--;
+
+             after(grammarAccess.getDelegateMockRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleDelegateMock"
+
+
+    // $ANTLR start "ruleDelegateMock"
+    // InternalTestgeneratorDSL.g:1237:1: ruleDelegateMock : ( ( rule__DelegateMock__Group__0 ) ) ;
+    public final void ruleDelegateMock() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1241:2: ( ( ( rule__DelegateMock__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1242:2: ( ( rule__DelegateMock__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1242:2: ( ( rule__DelegateMock__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1243:3: ( rule__DelegateMock__Group__0 )
+            {
+             before(grammarAccess.getDelegateMockAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1244:3: ( rule__DelegateMock__Group__0 )
+            // InternalTestgeneratorDSL.g:1244:4: rule__DelegateMock__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateMockAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDelegateMock"
+
+
+    // $ANTLR start "entryRuleMockingRule"
+    // InternalTestgeneratorDSL.g:1253:1: entryRuleMockingRule : ruleMockingRule EOF ;
+    public final void entryRuleMockingRule() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1254:1: ( ruleMockingRule EOF )
+            // InternalTestgeneratorDSL.g:1255:1: ruleMockingRule EOF
+            {
+             before(grammarAccess.getMockingRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleMockingRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getMockingRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleMockingRule"
+
+
+    // $ANTLR start "ruleMockingRule"
+    // InternalTestgeneratorDSL.g:1262:1: ruleMockingRule : ( ( rule__MockingRule__Group__0 ) ) ;
+    public final void ruleMockingRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1266:2: ( ( ( rule__MockingRule__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1267:2: ( ( rule__MockingRule__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1267:2: ( ( rule__MockingRule__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1268:3: ( rule__MockingRule__Group__0 )
+            {
+             before(grammarAccess.getMockingRuleAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1269:3: ( rule__MockingRule__Group__0 )
+            // InternalTestgeneratorDSL.g:1269:4: rule__MockingRule__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMockingRuleAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleMockingRule"
+
+
+    // $ANTLR start "entryRuleManualMock"
+    // InternalTestgeneratorDSL.g:1278:1: entryRuleManualMock : ruleManualMock EOF ;
+    public final void entryRuleManualMock() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1279:1: ( ruleManualMock EOF )
+            // InternalTestgeneratorDSL.g:1280:1: ruleManualMock EOF
+            {
+             before(grammarAccess.getManualMockRule()); 
+            pushFollow(FOLLOW_1);
+            ruleManualMock();
+
+            state._fsp--;
+
+             after(grammarAccess.getManualMockRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleManualMock"
+
+
+    // $ANTLR start "ruleManualMock"
+    // InternalTestgeneratorDSL.g:1287:1: ruleManualMock : ( ( rule__ManualMock__Group__0 ) ) ;
+    public final void ruleManualMock() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1291:2: ( ( ( rule__ManualMock__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1292:2: ( ( rule__ManualMock__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1292:2: ( ( rule__ManualMock__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1293:3: ( rule__ManualMock__Group__0 )
+            {
+             before(grammarAccess.getManualMockAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1294:3: ( rule__ManualMock__Group__0 )
+            // InternalTestgeneratorDSL.g:1294:4: rule__ManualMock__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getManualMockAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleManualMock"
+
+
+    // $ANTLR start "entryRuleCompare"
+    // InternalTestgeneratorDSL.g:1303:1: entryRuleCompare : ruleCompare EOF ;
+    public final void entryRuleCompare() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1304:1: ( ruleCompare EOF )
+            // InternalTestgeneratorDSL.g:1305:1: ruleCompare EOF
+            {
+             before(grammarAccess.getCompareRule()); 
+            pushFollow(FOLLOW_1);
+            ruleCompare();
+
+            state._fsp--;
+
+             after(grammarAccess.getCompareRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleCompare"
+
+
+    // $ANTLR start "ruleCompare"
+    // InternalTestgeneratorDSL.g:1312:1: ruleCompare : ( ( rule__Compare__Alternatives ) ) ;
+    public final void ruleCompare() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1316:2: ( ( ( rule__Compare__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:1317:2: ( ( rule__Compare__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:1317:2: ( ( rule__Compare__Alternatives ) )
+            // InternalTestgeneratorDSL.g:1318:3: ( rule__Compare__Alternatives )
+            {
+             before(grammarAccess.getCompareAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:1319:3: ( rule__Compare__Alternatives )
+            // InternalTestgeneratorDSL.g:1319:4: rule__Compare__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Compare__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getCompareAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleCompare"
+
+
+    // $ANTLR start "entryRuleStringCompare"
+    // InternalTestgeneratorDSL.g:1328:1: entryRuleStringCompare : ruleStringCompare EOF ;
+    public final void entryRuleStringCompare() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1329:1: ( ruleStringCompare EOF )
+            // InternalTestgeneratorDSL.g:1330:1: ruleStringCompare EOF
+            {
+             before(grammarAccess.getStringCompareRule()); 
+            pushFollow(FOLLOW_1);
+            ruleStringCompare();
+
+            state._fsp--;
+
+             after(grammarAccess.getStringCompareRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleStringCompare"
+
+
+    // $ANTLR start "ruleStringCompare"
+    // InternalTestgeneratorDSL.g:1337:1: ruleStringCompare : ( ( rule__StringCompare__Group__0 ) ) ;
+    public final void ruleStringCompare() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1341:2: ( ( ( rule__StringCompare__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1342:2: ( ( rule__StringCompare__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1342:2: ( ( rule__StringCompare__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1343:3: ( rule__StringCompare__Group__0 )
+            {
+             before(grammarAccess.getStringCompareAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1344:3: ( rule__StringCompare__Group__0 )
+            // InternalTestgeneratorDSL.g:1344:4: rule__StringCompare__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringCompare__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringCompareAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStringCompare"
+
+
+    // $ANTLR start "entryRuleIntCompare"
+    // InternalTestgeneratorDSL.g:1353:1: entryRuleIntCompare : ruleIntCompare EOF ;
+    public final void entryRuleIntCompare() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1354:1: ( ruleIntCompare EOF )
+            // InternalTestgeneratorDSL.g:1355:1: ruleIntCompare EOF
+            {
+             before(grammarAccess.getIntCompareRule()); 
+            pushFollow(FOLLOW_1);
+            ruleIntCompare();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntCompareRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIntCompare"
+
+
+    // $ANTLR start "ruleIntCompare"
+    // InternalTestgeneratorDSL.g:1362:1: ruleIntCompare : ( ( rule__IntCompare__Group__0 ) ) ;
+    public final void ruleIntCompare() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1366:2: ( ( ( rule__IntCompare__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1367:2: ( ( rule__IntCompare__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1367:2: ( ( rule__IntCompare__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1368:3: ( rule__IntCompare__Group__0 )
+            {
+             before(grammarAccess.getIntCompareAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1369:3: ( rule__IntCompare__Group__0 )
+            // InternalTestgeneratorDSL.g:1369:4: rule__IntCompare__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntCompare__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntCompareAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIntCompare"
+
+
+    // $ANTLR start "entryRuleBooleanCompare"
+    // InternalTestgeneratorDSL.g:1378:1: entryRuleBooleanCompare : ruleBooleanCompare EOF ;
+    public final void entryRuleBooleanCompare() throws RecognitionException {
+        try {
+            // InternalTestgeneratorDSL.g:1379:1: ( ruleBooleanCompare EOF )
+            // InternalTestgeneratorDSL.g:1380:1: ruleBooleanCompare EOF
+            {
+             before(grammarAccess.getBooleanCompareRule()); 
+            pushFollow(FOLLOW_1);
+            ruleBooleanCompare();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanCompareRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleBooleanCompare"
+
+
+    // $ANTLR start "ruleBooleanCompare"
+    // InternalTestgeneratorDSL.g:1387:1: ruleBooleanCompare : ( ( rule__BooleanCompare__Group__0 ) ) ;
+    public final void ruleBooleanCompare() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1391:2: ( ( ( rule__BooleanCompare__Group__0 ) ) )
+            // InternalTestgeneratorDSL.g:1392:2: ( ( rule__BooleanCompare__Group__0 ) )
+            {
+            // InternalTestgeneratorDSL.g:1392:2: ( ( rule__BooleanCompare__Group__0 ) )
+            // InternalTestgeneratorDSL.g:1393:3: ( rule__BooleanCompare__Group__0 )
+            {
+             before(grammarAccess.getBooleanCompareAccess().getGroup()); 
+            // InternalTestgeneratorDSL.g:1394:3: ( rule__BooleanCompare__Group__0 )
+            // InternalTestgeneratorDSL.g:1394:4: rule__BooleanCompare__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanCompare__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanCompareAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBooleanCompare"
+
+
+    // $ANTLR start "ruleBoolean"
+    // InternalTestgeneratorDSL.g:1403:1: ruleBoolean : ( ( rule__Boolean__Alternatives ) ) ;
+    public final void ruleBoolean() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1407:1: ( ( ( rule__Boolean__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:1408:2: ( ( rule__Boolean__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:1408:2: ( ( rule__Boolean__Alternatives ) )
+            // InternalTestgeneratorDSL.g:1409:3: ( rule__Boolean__Alternatives )
+            {
+             before(grammarAccess.getBooleanAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:1410:3: ( rule__Boolean__Alternatives )
+            // InternalTestgeneratorDSL.g:1410:4: rule__Boolean__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__Boolean__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBoolean"
+
+
+    // $ANTLR start "ruleStringCompareSymbol"
+    // InternalTestgeneratorDSL.g:1419:1: ruleStringCompareSymbol : ( ( rule__StringCompareSymbol__Alternatives ) ) ;
+    public final void ruleStringCompareSymbol() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1423:1: ( ( ( rule__StringCompareSymbol__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:1424:2: ( ( rule__StringCompareSymbol__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:1424:2: ( ( rule__StringCompareSymbol__Alternatives ) )
+            // InternalTestgeneratorDSL.g:1425:3: ( rule__StringCompareSymbol__Alternatives )
+            {
+             before(grammarAccess.getStringCompareSymbolAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:1426:3: ( rule__StringCompareSymbol__Alternatives )
+            // InternalTestgeneratorDSL.g:1426:4: rule__StringCompareSymbol__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringCompareSymbol__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringCompareSymbolAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleStringCompareSymbol"
+
+
+    // $ANTLR start "ruleIntCompareSymbol"
+    // InternalTestgeneratorDSL.g:1435:1: ruleIntCompareSymbol : ( ( rule__IntCompareSymbol__Alternatives ) ) ;
+    public final void ruleIntCompareSymbol() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1439:1: ( ( ( rule__IntCompareSymbol__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:1440:2: ( ( rule__IntCompareSymbol__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:1440:2: ( ( rule__IntCompareSymbol__Alternatives ) )
+            // InternalTestgeneratorDSL.g:1441:3: ( rule__IntCompareSymbol__Alternatives )
+            {
+             before(grammarAccess.getIntCompareSymbolAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:1442:3: ( rule__IntCompareSymbol__Alternatives )
+            // InternalTestgeneratorDSL.g:1442:4: rule__IntCompareSymbol__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntCompareSymbol__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntCompareSymbolAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIntCompareSymbol"
+
+
+    // $ANTLR start "ruleBooleanCompareSymbol"
+    // InternalTestgeneratorDSL.g:1451:1: ruleBooleanCompareSymbol : ( ( rule__BooleanCompareSymbol__Alternatives ) ) ;
+    public final void ruleBooleanCompareSymbol() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1455:1: ( ( ( rule__BooleanCompareSymbol__Alternatives ) ) )
+            // InternalTestgeneratorDSL.g:1456:2: ( ( rule__BooleanCompareSymbol__Alternatives ) )
+            {
+            // InternalTestgeneratorDSL.g:1456:2: ( ( rule__BooleanCompareSymbol__Alternatives ) )
+            // InternalTestgeneratorDSL.g:1457:3: ( rule__BooleanCompareSymbol__Alternatives )
+            {
+             before(grammarAccess.getBooleanCompareSymbolAccess().getAlternatives()); 
+            // InternalTestgeneratorDSL.g:1458:3: ( rule__BooleanCompareSymbol__Alternatives )
+            // InternalTestgeneratorDSL.g:1458:4: rule__BooleanCompareSymbol__Alternatives
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanCompareSymbol__Alternatives();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanCompareSymbolAccess().getAlternatives()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleBooleanCompareSymbol"
+
+
+    // $ANTLR start "rule__Declaration__Alternatives"
+    // InternalTestgeneratorDSL.g:1466:1: rule__Declaration__Alternatives : ( ( ruleBPMNDiagram ) | ( ruleFlowElement ) | ( ruleVariable ) | ( ruleFlow ) | ( ruleTest ) | ( ruleMock ) | ( ruleExternalTopic ) | ( ruleLoop ) );
+    public final void rule__Declaration__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1470:1: ( ( ruleBPMNDiagram ) | ( ruleFlowElement ) | ( ruleVariable ) | ( ruleFlow ) | ( ruleTest ) | ( ruleMock ) | ( ruleExternalTopic ) | ( ruleLoop ) )
+            int alt2=8;
+            switch ( input.LA(1) ) {
+            case 24:
+                {
+                alt2=1;
+                }
+                break;
+            case 31:
+                {
+                alt2=2;
+                }
+                break;
+            case 48:
+            case 50:
+            case 51:
+                {
+                alt2=3;
+                }
+                break;
+            case 60:
+                {
+                alt2=4;
+                }
+                break;
+            case 64:
+                {
+                alt2=5;
+                }
+                break;
+            case 70:
+            case 72:
+                {
+                alt2=6;
+                }
+                break;
+            case 47:
+                {
+                alt2=7;
+                }
+                break;
+            case 52:
+                {
+                alt2=8;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 2, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt2) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1471:2: ( ruleBPMNDiagram )
+                    {
+                    // InternalTestgeneratorDSL.g:1471:2: ( ruleBPMNDiagram )
+                    // InternalTestgeneratorDSL.g:1472:3: ruleBPMNDiagram
+                    {
+                     before(grammarAccess.getDeclarationAccess().getBPMNDiagramParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleBPMNDiagram();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDeclarationAccess().getBPMNDiagramParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1477:2: ( ruleFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1477:2: ( ruleFlowElement )
+                    // InternalTestgeneratorDSL.g:1478:3: ruleFlowElement
+                    {
+                     before(grammarAccess.getDeclarationAccess().getFlowElementParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDeclarationAccess().getFlowElementParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1483:2: ( ruleVariable )
+                    {
+                    // InternalTestgeneratorDSL.g:1483:2: ( ruleVariable )
+                    // InternalTestgeneratorDSL.g:1484:3: ruleVariable
+                    {
+                     before(grammarAccess.getDeclarationAccess().getVariableParserRuleCall_2()); 
+                    pushFollow(FOLLOW_2);
+                    ruleVariable();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDeclarationAccess().getVariableParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTestgeneratorDSL.g:1489:2: ( ruleFlow )
+                    {
+                    // InternalTestgeneratorDSL.g:1489:2: ( ruleFlow )
+                    // InternalTestgeneratorDSL.g:1490:3: ruleFlow
+                    {
+                     before(grammarAccess.getDeclarationAccess().getFlowParserRuleCall_3()); 
+                    pushFollow(FOLLOW_2);
+                    ruleFlow();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDeclarationAccess().getFlowParserRuleCall_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTestgeneratorDSL.g:1495:2: ( ruleTest )
+                    {
+                    // InternalTestgeneratorDSL.g:1495:2: ( ruleTest )
+                    // InternalTestgeneratorDSL.g:1496:3: ruleTest
+                    {
+                     before(grammarAccess.getDeclarationAccess().getTestParserRuleCall_4()); 
+                    pushFollow(FOLLOW_2);
+                    ruleTest();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDeclarationAccess().getTestParserRuleCall_4()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTestgeneratorDSL.g:1501:2: ( ruleMock )
+                    {
+                    // InternalTestgeneratorDSL.g:1501:2: ( ruleMock )
+                    // InternalTestgeneratorDSL.g:1502:3: ruleMock
+                    {
+                     before(grammarAccess.getDeclarationAccess().getMockParserRuleCall_5()); 
+                    pushFollow(FOLLOW_2);
+                    ruleMock();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDeclarationAccess().getMockParserRuleCall_5()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTestgeneratorDSL.g:1507:2: ( ruleExternalTopic )
+                    {
+                    // InternalTestgeneratorDSL.g:1507:2: ( ruleExternalTopic )
+                    // InternalTestgeneratorDSL.g:1508:3: ruleExternalTopic
+                    {
+                     before(grammarAccess.getDeclarationAccess().getExternalTopicParserRuleCall_6()); 
+                    pushFollow(FOLLOW_2);
+                    ruleExternalTopic();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDeclarationAccess().getExternalTopicParserRuleCall_6()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTestgeneratorDSL.g:1513:2: ( ruleLoop )
+                    {
+                    // InternalTestgeneratorDSL.g:1513:2: ( ruleLoop )
+                    // InternalTestgeneratorDSL.g:1514:3: ruleLoop
+                    {
+                     before(grammarAccess.getDeclarationAccess().getLoopParserRuleCall_7()); 
+                    pushFollow(FOLLOW_2);
+                    ruleLoop();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getDeclarationAccess().getLoopParserRuleCall_7()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Declaration__Alternatives"
+
+
+    // $ANTLR start "rule__FlowElement__Alternatives"
+    // InternalTestgeneratorDSL.g:1523:1: rule__FlowElement__Alternatives : ( ( ruleStartFlowElement ) | ( ruleEndFlowElement ) | ( ruleUserTaskFlowElement ) | ( ruleManualTaskFlowElement ) | ( ruleScriptTaskFlowElement ) | ( ruleServiceTaskFlowElement ) | ( ruleBusinessRuleTaskFlowElement ) | ( ruleGatewayFlowElement ) | ( ruleSequenceFlowElement ) );
+    public final void rule__FlowElement__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1527:1: ( ( ruleStartFlowElement ) | ( ruleEndFlowElement ) | ( ruleUserTaskFlowElement ) | ( ruleManualTaskFlowElement ) | ( ruleScriptTaskFlowElement ) | ( ruleServiceTaskFlowElement ) | ( ruleBusinessRuleTaskFlowElement ) | ( ruleGatewayFlowElement ) | ( ruleSequenceFlowElement ) )
+            int alt3=9;
+            alt3 = dfa3.predict(input);
+            switch (alt3) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1528:2: ( ruleStartFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1528:2: ( ruleStartFlowElement )
+                    // InternalTestgeneratorDSL.g:1529:3: ruleStartFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getStartFlowElementParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleStartFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getStartFlowElementParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1534:2: ( ruleEndFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1534:2: ( ruleEndFlowElement )
+                    // InternalTestgeneratorDSL.g:1535:3: ruleEndFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getEndFlowElementParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleEndFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getEndFlowElementParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1540:2: ( ruleUserTaskFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1540:2: ( ruleUserTaskFlowElement )
+                    // InternalTestgeneratorDSL.g:1541:3: ruleUserTaskFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getUserTaskFlowElementParserRuleCall_2()); 
+                    pushFollow(FOLLOW_2);
+                    ruleUserTaskFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getUserTaskFlowElementParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTestgeneratorDSL.g:1546:2: ( ruleManualTaskFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1546:2: ( ruleManualTaskFlowElement )
+                    // InternalTestgeneratorDSL.g:1547:3: ruleManualTaskFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getManualTaskFlowElementParserRuleCall_3()); 
+                    pushFollow(FOLLOW_2);
+                    ruleManualTaskFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getManualTaskFlowElementParserRuleCall_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTestgeneratorDSL.g:1552:2: ( ruleScriptTaskFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1552:2: ( ruleScriptTaskFlowElement )
+                    // InternalTestgeneratorDSL.g:1553:3: ruleScriptTaskFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getScriptTaskFlowElementParserRuleCall_4()); 
+                    pushFollow(FOLLOW_2);
+                    ruleScriptTaskFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getScriptTaskFlowElementParserRuleCall_4()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTestgeneratorDSL.g:1558:2: ( ruleServiceTaskFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1558:2: ( ruleServiceTaskFlowElement )
+                    // InternalTestgeneratorDSL.g:1559:3: ruleServiceTaskFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getServiceTaskFlowElementParserRuleCall_5()); 
+                    pushFollow(FOLLOW_2);
+                    ruleServiceTaskFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getServiceTaskFlowElementParserRuleCall_5()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTestgeneratorDSL.g:1564:2: ( ruleBusinessRuleTaskFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1564:2: ( ruleBusinessRuleTaskFlowElement )
+                    // InternalTestgeneratorDSL.g:1565:3: ruleBusinessRuleTaskFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getBusinessRuleTaskFlowElementParserRuleCall_6()); 
+                    pushFollow(FOLLOW_2);
+                    ruleBusinessRuleTaskFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getBusinessRuleTaskFlowElementParserRuleCall_6()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTestgeneratorDSL.g:1570:2: ( ruleGatewayFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1570:2: ( ruleGatewayFlowElement )
+                    // InternalTestgeneratorDSL.g:1571:3: ruleGatewayFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getGatewayFlowElementParserRuleCall_7()); 
+                    pushFollow(FOLLOW_2);
+                    ruleGatewayFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getGatewayFlowElementParserRuleCall_7()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTestgeneratorDSL.g:1576:2: ( ruleSequenceFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1576:2: ( ruleSequenceFlowElement )
+                    // InternalTestgeneratorDSL.g:1577:3: ruleSequenceFlowElement
+                    {
+                     before(grammarAccess.getFlowElementAccess().getSequenceFlowElementParserRuleCall_8()); 
+                    pushFollow(FOLLOW_2);
+                    ruleSequenceFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getFlowElementAccess().getSequenceFlowElementParserRuleCall_8()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowElement__Alternatives"
+
+
+    // $ANTLR start "rule__ServiceTaskFlowElement__Alternatives"
+    // InternalTestgeneratorDSL.g:1586:1: rule__ServiceTaskFlowElement__Alternatives : ( ( ruleDelegateServiceTaskFlowElement ) | ( ruleExternalServiceTaskFlowElement ) );
+    public final void rule__ServiceTaskFlowElement__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1590:1: ( ( ruleDelegateServiceTaskFlowElement ) | ( ruleExternalServiceTaskFlowElement ) )
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==31) ) {
+                int LA4_1 = input.LA(2);
+
+                if ( (LA4_1==RULE_ID) ) {
+                    int LA4_2 = input.LA(3);
+
+                    if ( (LA4_2==RULE_ASSOCIATION) ) {
+                        int LA4_3 = input.LA(4);
+
+                        if ( (LA4_3==38) ) {
+                            int LA4_4 = input.LA(5);
+
+                            if ( (LA4_4==25) ) {
+                                int LA4_5 = input.LA(6);
+
+                                if ( (LA4_5==40) ) {
+                                    alt4=2;
+                                }
+                                else if ( (LA4_5==39) ) {
+                                    alt4=1;
+                                }
+                                else {
+                                    NoViableAltException nvae =
+                                        new NoViableAltException("", 4, 5, input);
+
+                                    throw nvae;
+                                }
+                            }
+                            else {
+                                NoViableAltException nvae =
+                                    new NoViableAltException("", 4, 4, input);
+
+                                throw nvae;
+                            }
+                        }
+                        else {
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 4, 3, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 4, 2, input);
+
+                        throw nvae;
+                    }
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 4, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 4, 0, input);
+
+                throw nvae;
+            }
+            switch (alt4) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1591:2: ( ruleDelegateServiceTaskFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1591:2: ( ruleDelegateServiceTaskFlowElement )
+                    // InternalTestgeneratorDSL.g:1592:3: ruleDelegateServiceTaskFlowElement
+                    {
+                     before(grammarAccess.getServiceTaskFlowElementAccess().getDelegateServiceTaskFlowElementParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleDelegateServiceTaskFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getServiceTaskFlowElementAccess().getDelegateServiceTaskFlowElementParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1597:2: ( ruleExternalServiceTaskFlowElement )
+                    {
+                    // InternalTestgeneratorDSL.g:1597:2: ( ruleExternalServiceTaskFlowElement )
+                    // InternalTestgeneratorDSL.g:1598:3: ruleExternalServiceTaskFlowElement
+                    {
+                     before(grammarAccess.getServiceTaskFlowElementAccess().getExternalServiceTaskFlowElementParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleExternalServiceTaskFlowElement();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getServiceTaskFlowElementAccess().getExternalServiceTaskFlowElementParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ServiceTaskFlowElement__Alternatives"
+
+
+    // $ANTLR start "rule__Variable__Alternatives"
+    // InternalTestgeneratorDSL.g:1607:1: rule__Variable__Alternatives : ( ( ruleStringVariable ) | ( ruleIntVariable ) | ( ruleBooleanVariable ) );
+    public final void rule__Variable__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1611:1: ( ( ruleStringVariable ) | ( ruleIntVariable ) | ( ruleBooleanVariable ) )
+            int alt5=3;
+            switch ( input.LA(1) ) {
+            case 48:
+                {
+                alt5=1;
+                }
+                break;
+            case 50:
+                {
+                alt5=2;
+                }
+                break;
+            case 51:
+                {
+                alt5=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 5, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt5) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1612:2: ( ruleStringVariable )
+                    {
+                    // InternalTestgeneratorDSL.g:1612:2: ( ruleStringVariable )
+                    // InternalTestgeneratorDSL.g:1613:3: ruleStringVariable
+                    {
+                     before(grammarAccess.getVariableAccess().getStringVariableParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleStringVariable();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableAccess().getStringVariableParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1618:2: ( ruleIntVariable )
+                    {
+                    // InternalTestgeneratorDSL.g:1618:2: ( ruleIntVariable )
+                    // InternalTestgeneratorDSL.g:1619:3: ruleIntVariable
+                    {
+                     before(grammarAccess.getVariableAccess().getIntVariableParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleIntVariable();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableAccess().getIntVariableParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1624:2: ( ruleBooleanVariable )
+                    {
+                    // InternalTestgeneratorDSL.g:1624:2: ( ruleBooleanVariable )
+                    // InternalTestgeneratorDSL.g:1625:3: ruleBooleanVariable
+                    {
+                     before(grammarAccess.getVariableAccess().getBooleanVariableParserRuleCall_2()); 
+                    pushFollow(FOLLOW_2);
+                    ruleBooleanVariable();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableAccess().getBooleanVariableParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Variable__Alternatives"
+
+
+    // $ANTLR start "rule__VariableDeclaration__Alternatives"
+    // InternalTestgeneratorDSL.g:1634:1: rule__VariableDeclaration__Alternatives : ( ( ruleStringVariableDeclaration ) | ( ruleIntVariableDeclaration ) | ( ruleBooleanVariableDeclaration ) );
+    public final void rule__VariableDeclaration__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1638:1: ( ( ruleStringVariableDeclaration ) | ( ruleIntVariableDeclaration ) | ( ruleBooleanVariableDeclaration ) )
+            int alt6=3;
+            int LA6_0 = input.LA(1);
+
+            if ( (LA6_0==RULE_ID) ) {
+                int LA6_1 = input.LA(2);
+
+                if ( (LA6_1==69) ) {
+                    switch ( input.LA(3) ) {
+                    case 16:
+                    case 17:
+                        {
+                        alt6=3;
+                        }
+                        break;
+                    case RULE_INT:
+                        {
+                        alt6=2;
+                        }
+                        break;
+                    case RULE_STRING:
+                        {
+                        alt6=1;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 6, 2, input);
+
+                        throw nvae;
+                    }
+
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 6, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 6, 0, input);
+
+                throw nvae;
+            }
+            switch (alt6) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1639:2: ( ruleStringVariableDeclaration )
+                    {
+                    // InternalTestgeneratorDSL.g:1639:2: ( ruleStringVariableDeclaration )
+                    // InternalTestgeneratorDSL.g:1640:3: ruleStringVariableDeclaration
+                    {
+                     before(grammarAccess.getVariableDeclarationAccess().getStringVariableDeclarationParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleStringVariableDeclaration();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableDeclarationAccess().getStringVariableDeclarationParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1645:2: ( ruleIntVariableDeclaration )
+                    {
+                    // InternalTestgeneratorDSL.g:1645:2: ( ruleIntVariableDeclaration )
+                    // InternalTestgeneratorDSL.g:1646:3: ruleIntVariableDeclaration
+                    {
+                     before(grammarAccess.getVariableDeclarationAccess().getIntVariableDeclarationParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleIntVariableDeclaration();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableDeclarationAccess().getIntVariableDeclarationParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1651:2: ( ruleBooleanVariableDeclaration )
+                    {
+                    // InternalTestgeneratorDSL.g:1651:2: ( ruleBooleanVariableDeclaration )
+                    // InternalTestgeneratorDSL.g:1652:3: ruleBooleanVariableDeclaration
+                    {
+                     before(grammarAccess.getVariableDeclarationAccess().getBooleanVariableDeclarationParserRuleCall_2()); 
+                    pushFollow(FOLLOW_2);
+                    ruleBooleanVariableDeclaration();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableDeclarationAccess().getBooleanVariableDeclarationParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclaration__Alternatives"
+
+
+    // $ANTLR start "rule__EndCheck__Alternatives"
+    // InternalTestgeneratorDSL.g:1661:1: rule__EndCheck__Alternatives : ( ( ruleVariableEquals ) | ( ruleVariableNotEquals ) );
+    public final void rule__EndCheck__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1665:1: ( ( ruleVariableEquals ) | ( ruleVariableNotEquals ) )
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==RULE_ID) ) {
+                int LA7_1 = input.LA(2);
+
+                if ( (LA7_1==19) ) {
+                    alt7=2;
+                }
+                else if ( (LA7_1==18) ) {
+                    alt7=1;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 7, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+            switch (alt7) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1666:2: ( ruleVariableEquals )
+                    {
+                    // InternalTestgeneratorDSL.g:1666:2: ( ruleVariableEquals )
+                    // InternalTestgeneratorDSL.g:1667:3: ruleVariableEquals
+                    {
+                     before(grammarAccess.getEndCheckAccess().getVariableEqualsParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleVariableEquals();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getEndCheckAccess().getVariableEqualsParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1672:2: ( ruleVariableNotEquals )
+                    {
+                    // InternalTestgeneratorDSL.g:1672:2: ( ruleVariableNotEquals )
+                    // InternalTestgeneratorDSL.g:1673:3: ruleVariableNotEquals
+                    {
+                     before(grammarAccess.getEndCheckAccess().getVariableNotEqualsParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleVariableNotEquals();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getEndCheckAccess().getVariableNotEqualsParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndCheck__Alternatives"
+
+
+    // $ANTLR start "rule__VariableEquals__Alternatives"
+    // InternalTestgeneratorDSL.g:1682:1: rule__VariableEquals__Alternatives : ( ( ruleStringVariableEquals ) | ( ruleIntVariableEquals ) | ( ruleBooleanVariableEquals ) );
+    public final void rule__VariableEquals__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1686:1: ( ( ruleStringVariableEquals ) | ( ruleIntVariableEquals ) | ( ruleBooleanVariableEquals ) )
+            int alt8=3;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==RULE_ID) ) {
+                int LA8_1 = input.LA(2);
+
+                if ( (LA8_1==18) ) {
+                    switch ( input.LA(3) ) {
+                    case 16:
+                    case 17:
+                        {
+                        alt8=3;
+                        }
+                        break;
+                    case RULE_INT:
+                        {
+                        alt8=2;
+                        }
+                        break;
+                    case RULE_STRING:
+                        {
+                        alt8=1;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 8, 2, input);
+
+                        throw nvae;
+                    }
+
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 8, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+            switch (alt8) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1687:2: ( ruleStringVariableEquals )
+                    {
+                    // InternalTestgeneratorDSL.g:1687:2: ( ruleStringVariableEquals )
+                    // InternalTestgeneratorDSL.g:1688:3: ruleStringVariableEquals
+                    {
+                     before(grammarAccess.getVariableEqualsAccess().getStringVariableEqualsParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleStringVariableEquals();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableEqualsAccess().getStringVariableEqualsParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1693:2: ( ruleIntVariableEquals )
+                    {
+                    // InternalTestgeneratorDSL.g:1693:2: ( ruleIntVariableEquals )
+                    // InternalTestgeneratorDSL.g:1694:3: ruleIntVariableEquals
+                    {
+                     before(grammarAccess.getVariableEqualsAccess().getIntVariableEqualsParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleIntVariableEquals();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableEqualsAccess().getIntVariableEqualsParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1699:2: ( ruleBooleanVariableEquals )
+                    {
+                    // InternalTestgeneratorDSL.g:1699:2: ( ruleBooleanVariableEquals )
+                    // InternalTestgeneratorDSL.g:1700:3: ruleBooleanVariableEquals
+                    {
+                     before(grammarAccess.getVariableEqualsAccess().getBooleanVariableEqualsParserRuleCall_2()); 
+                    pushFollow(FOLLOW_2);
+                    ruleBooleanVariableEquals();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableEqualsAccess().getBooleanVariableEqualsParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableEquals__Alternatives"
+
+
+    // $ANTLR start "rule__VariableNotEquals__Alternatives"
+    // InternalTestgeneratorDSL.g:1709:1: rule__VariableNotEquals__Alternatives : ( ( ruleStringVariableNotEquals ) | ( ruleIntVariableNotEquals ) | ( ruleBooleanVariableNotEquals ) );
+    public final void rule__VariableNotEquals__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1713:1: ( ( ruleStringVariableNotEquals ) | ( ruleIntVariableNotEquals ) | ( ruleBooleanVariableNotEquals ) )
+            int alt9=3;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==RULE_ID) ) {
+                int LA9_1 = input.LA(2);
+
+                if ( (LA9_1==19) ) {
+                    switch ( input.LA(3) ) {
+                    case 16:
+                    case 17:
+                        {
+                        alt9=3;
+                        }
+                        break;
+                    case RULE_INT:
+                        {
+                        alt9=2;
+                        }
+                        break;
+                    case RULE_STRING:
+                        {
+                        alt9=1;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 9, 2, input);
+
+                        throw nvae;
+                    }
+
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 9, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+            switch (alt9) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1714:2: ( ruleStringVariableNotEquals )
+                    {
+                    // InternalTestgeneratorDSL.g:1714:2: ( ruleStringVariableNotEquals )
+                    // InternalTestgeneratorDSL.g:1715:3: ruleStringVariableNotEquals
+                    {
+                     before(grammarAccess.getVariableNotEqualsAccess().getStringVariableNotEqualsParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleStringVariableNotEquals();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableNotEqualsAccess().getStringVariableNotEqualsParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1720:2: ( ruleIntVariableNotEquals )
+                    {
+                    // InternalTestgeneratorDSL.g:1720:2: ( ruleIntVariableNotEquals )
+                    // InternalTestgeneratorDSL.g:1721:3: ruleIntVariableNotEquals
+                    {
+                     before(grammarAccess.getVariableNotEqualsAccess().getIntVariableNotEqualsParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleIntVariableNotEquals();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableNotEqualsAccess().getIntVariableNotEqualsParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1726:2: ( ruleBooleanVariableNotEquals )
+                    {
+                    // InternalTestgeneratorDSL.g:1726:2: ( ruleBooleanVariableNotEquals )
+                    // InternalTestgeneratorDSL.g:1727:3: ruleBooleanVariableNotEquals
+                    {
+                     before(grammarAccess.getVariableNotEqualsAccess().getBooleanVariableNotEqualsParserRuleCall_2()); 
+                    pushFollow(FOLLOW_2);
+                    ruleBooleanVariableNotEquals();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getVariableNotEqualsAccess().getBooleanVariableNotEqualsParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableNotEquals__Alternatives"
+
+
+    // $ANTLR start "rule__Mock__Alternatives"
+    // InternalTestgeneratorDSL.g:1736:1: rule__Mock__Alternatives : ( ( ruleExternalServiceMock ) | ( ruleDelegateMock ) );
+    public final void rule__Mock__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1740:1: ( ( ruleExternalServiceMock ) | ( ruleDelegateMock ) )
+            int alt10=2;
+            int LA10_0 = input.LA(1);
+
+            if ( (LA10_0==70) ) {
+                alt10=1;
+            }
+            else if ( (LA10_0==72) ) {
+                alt10=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 10, 0, input);
+
+                throw nvae;
+            }
+            switch (alt10) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1741:2: ( ruleExternalServiceMock )
+                    {
+                    // InternalTestgeneratorDSL.g:1741:2: ( ruleExternalServiceMock )
+                    // InternalTestgeneratorDSL.g:1742:3: ruleExternalServiceMock
+                    {
+                     before(grammarAccess.getMockAccess().getExternalServiceMockParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleExternalServiceMock();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getMockAccess().getExternalServiceMockParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1747:2: ( ruleDelegateMock )
+                    {
+                    // InternalTestgeneratorDSL.g:1747:2: ( ruleDelegateMock )
+                    // InternalTestgeneratorDSL.g:1748:3: ruleDelegateMock
+                    {
+                     before(grammarAccess.getMockAccess().getDelegateMockParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleDelegateMock();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getMockAccess().getDelegateMockParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Mock__Alternatives"
+
+
+    // $ANTLR start "rule__Compare__Alternatives"
+    // InternalTestgeneratorDSL.g:1757:1: rule__Compare__Alternatives : ( ( ruleStringCompare ) | ( ruleIntCompare ) | ( ruleBooleanCompare ) );
+    public final void rule__Compare__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1761:1: ( ( ruleStringCompare ) | ( ruleIntCompare ) | ( ruleBooleanCompare ) )
+            int alt11=3;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==RULE_ID) ) {
+                switch ( input.LA(2) ) {
+                case 18:
+                    {
+                    switch ( input.LA(3) ) {
+                    case 16:
+                    case 17:
+                        {
+                        alt11=3;
+                        }
+                        break;
+                    case RULE_INT:
+                        {
+                        alt11=2;
+                        }
+                        break;
+                    case RULE_STRING:
+                        {
+                        alt11=1;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 11, 2, input);
+
+                        throw nvae;
+                    }
+
+                    }
+                    break;
+                case 19:
+                    {
+                    switch ( input.LA(3) ) {
+                    case 16:
+                    case 17:
+                        {
+                        alt11=3;
+                        }
+                        break;
+                    case RULE_INT:
+                        {
+                        alt11=2;
+                        }
+                        break;
+                    case RULE_STRING:
+                        {
+                        alt11=1;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 11, 3, input);
+
+                        throw nvae;
+                    }
+
+                    }
+                    break;
+                case 20:
+                case 21:
+                case 22:
+                case 23:
+                    {
+                    alt11=2;
+                    }
+                    break;
+                default:
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 11, 1, input);
+
+                    throw nvae;
+                }
+
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+            switch (alt11) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1762:2: ( ruleStringCompare )
+                    {
+                    // InternalTestgeneratorDSL.g:1762:2: ( ruleStringCompare )
+                    // InternalTestgeneratorDSL.g:1763:3: ruleStringCompare
+                    {
+                     before(grammarAccess.getCompareAccess().getStringCompareParserRuleCall_0()); 
+                    pushFollow(FOLLOW_2);
+                    ruleStringCompare();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getCompareAccess().getStringCompareParserRuleCall_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1768:2: ( ruleIntCompare )
+                    {
+                    // InternalTestgeneratorDSL.g:1768:2: ( ruleIntCompare )
+                    // InternalTestgeneratorDSL.g:1769:3: ruleIntCompare
+                    {
+                     before(grammarAccess.getCompareAccess().getIntCompareParserRuleCall_1()); 
+                    pushFollow(FOLLOW_2);
+                    ruleIntCompare();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getCompareAccess().getIntCompareParserRuleCall_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1774:2: ( ruleBooleanCompare )
+                    {
+                    // InternalTestgeneratorDSL.g:1774:2: ( ruleBooleanCompare )
+                    // InternalTestgeneratorDSL.g:1775:3: ruleBooleanCompare
+                    {
+                     before(grammarAccess.getCompareAccess().getBooleanCompareParserRuleCall_2()); 
+                    pushFollow(FOLLOW_2);
+                    ruleBooleanCompare();
+
+                    state._fsp--;
+
+                     after(grammarAccess.getCompareAccess().getBooleanCompareParserRuleCall_2()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Compare__Alternatives"
+
+
+    // $ANTLR start "rule__Boolean__Alternatives"
+    // InternalTestgeneratorDSL.g:1784:1: rule__Boolean__Alternatives : ( ( ( 'true' ) ) | ( ( 'false' ) ) );
+    public final void rule__Boolean__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1788:1: ( ( ( 'true' ) ) | ( ( 'false' ) ) )
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==16) ) {
+                alt12=1;
+            }
+            else if ( (LA12_0==17) ) {
+                alt12=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 12, 0, input);
+
+                throw nvae;
+            }
+            switch (alt12) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1789:2: ( ( 'true' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1789:2: ( ( 'true' ) )
+                    // InternalTestgeneratorDSL.g:1790:3: ( 'true' )
+                    {
+                     before(grammarAccess.getBooleanAccess().getTRUEEnumLiteralDeclaration_0()); 
+                    // InternalTestgeneratorDSL.g:1791:3: ( 'true' )
+                    // InternalTestgeneratorDSL.g:1791:4: 'true'
+                    {
+                    match(input,16,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getBooleanAccess().getTRUEEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1795:2: ( ( 'false' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1795:2: ( ( 'false' ) )
+                    // InternalTestgeneratorDSL.g:1796:3: ( 'false' )
+                    {
+                     before(grammarAccess.getBooleanAccess().getFALSEEnumLiteralDeclaration_1()); 
+                    // InternalTestgeneratorDSL.g:1797:3: ( 'false' )
+                    // InternalTestgeneratorDSL.g:1797:4: 'false'
+                    {
+                    match(input,17,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getBooleanAccess().getFALSEEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Boolean__Alternatives"
+
+
+    // $ANTLR start "rule__StringCompareSymbol__Alternatives"
+    // InternalTestgeneratorDSL.g:1805:1: rule__StringCompareSymbol__Alternatives : ( ( ( '==' ) ) | ( ( '!=' ) ) );
+    public final void rule__StringCompareSymbol__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1809:1: ( ( ( '==' ) ) | ( ( '!=' ) ) )
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==18) ) {
+                alt13=1;
+            }
+            else if ( (LA13_0==19) ) {
+                alt13=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 13, 0, input);
+
+                throw nvae;
+            }
+            switch (alt13) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1810:2: ( ( '==' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1810:2: ( ( '==' ) )
+                    // InternalTestgeneratorDSL.g:1811:3: ( '==' )
+                    {
+                     before(grammarAccess.getStringCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); 
+                    // InternalTestgeneratorDSL.g:1812:3: ( '==' )
+                    // InternalTestgeneratorDSL.g:1812:4: '=='
+                    {
+                    match(input,18,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getStringCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1816:2: ( ( '!=' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1816:2: ( ( '!=' ) )
+                    // InternalTestgeneratorDSL.g:1817:3: ( '!=' )
+                    {
+                     before(grammarAccess.getStringCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); 
+                    // InternalTestgeneratorDSL.g:1818:3: ( '!=' )
+                    // InternalTestgeneratorDSL.g:1818:4: '!='
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getStringCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompareSymbol__Alternatives"
+
+
+    // $ANTLR start "rule__IntCompareSymbol__Alternatives"
+    // InternalTestgeneratorDSL.g:1826:1: rule__IntCompareSymbol__Alternatives : ( ( ( '==' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '>' ) ) | ( ( '<=' ) ) | ( ( '>=' ) ) );
+    public final void rule__IntCompareSymbol__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1830:1: ( ( ( '==' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '>' ) ) | ( ( '<=' ) ) | ( ( '>=' ) ) )
+            int alt14=6;
+            switch ( input.LA(1) ) {
+            case 18:
+                {
+                alt14=1;
+                }
+                break;
+            case 19:
+                {
+                alt14=2;
+                }
+                break;
+            case 20:
+                {
+                alt14=3;
+                }
+                break;
+            case 21:
+                {
+                alt14=4;
+                }
+                break;
+            case 22:
+                {
+                alt14=5;
+                }
+                break;
+            case 23:
+                {
+                alt14=6;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 14, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt14) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1831:2: ( ( '==' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1831:2: ( ( '==' ) )
+                    // InternalTestgeneratorDSL.g:1832:3: ( '==' )
+                    {
+                     before(grammarAccess.getIntCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); 
+                    // InternalTestgeneratorDSL.g:1833:3: ( '==' )
+                    // InternalTestgeneratorDSL.g:1833:4: '=='
+                    {
+                    match(input,18,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIntCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1837:2: ( ( '!=' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1837:2: ( ( '!=' ) )
+                    // InternalTestgeneratorDSL.g:1838:3: ( '!=' )
+                    {
+                     before(grammarAccess.getIntCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); 
+                    // InternalTestgeneratorDSL.g:1839:3: ( '!=' )
+                    // InternalTestgeneratorDSL.g:1839:4: '!='
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIntCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1843:2: ( ( '<' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1843:2: ( ( '<' ) )
+                    // InternalTestgeneratorDSL.g:1844:3: ( '<' )
+                    {
+                     before(grammarAccess.getIntCompareSymbolAccess().getLOWEREnumLiteralDeclaration_2()); 
+                    // InternalTestgeneratorDSL.g:1845:3: ( '<' )
+                    // InternalTestgeneratorDSL.g:1845:4: '<'
+                    {
+                    match(input,20,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIntCompareSymbolAccess().getLOWEREnumLiteralDeclaration_2()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTestgeneratorDSL.g:1849:2: ( ( '>' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1849:2: ( ( '>' ) )
+                    // InternalTestgeneratorDSL.g:1850:3: ( '>' )
+                    {
+                     before(grammarAccess.getIntCompareSymbolAccess().getGREATEREnumLiteralDeclaration_3()); 
+                    // InternalTestgeneratorDSL.g:1851:3: ( '>' )
+                    // InternalTestgeneratorDSL.g:1851:4: '>'
+                    {
+                    match(input,21,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIntCompareSymbolAccess().getGREATEREnumLiteralDeclaration_3()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTestgeneratorDSL.g:1855:2: ( ( '<=' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1855:2: ( ( '<=' ) )
+                    // InternalTestgeneratorDSL.g:1856:3: ( '<=' )
+                    {
+                     before(grammarAccess.getIntCompareSymbolAccess().getLOWER_EQUALSEnumLiteralDeclaration_4()); 
+                    // InternalTestgeneratorDSL.g:1857:3: ( '<=' )
+                    // InternalTestgeneratorDSL.g:1857:4: '<='
+                    {
+                    match(input,22,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIntCompareSymbolAccess().getLOWER_EQUALSEnumLiteralDeclaration_4()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTestgeneratorDSL.g:1861:2: ( ( '>=' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1861:2: ( ( '>=' ) )
+                    // InternalTestgeneratorDSL.g:1862:3: ( '>=' )
+                    {
+                     before(grammarAccess.getIntCompareSymbolAccess().getGREATER_EQUALSEnumLiteralDeclaration_5()); 
+                    // InternalTestgeneratorDSL.g:1863:3: ( '>=' )
+                    // InternalTestgeneratorDSL.g:1863:4: '>='
+                    {
+                    match(input,23,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getIntCompareSymbolAccess().getGREATER_EQUALSEnumLiteralDeclaration_5()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompareSymbol__Alternatives"
+
+
+    // $ANTLR start "rule__BooleanCompareSymbol__Alternatives"
+    // InternalTestgeneratorDSL.g:1871:1: rule__BooleanCompareSymbol__Alternatives : ( ( ( '==' ) ) | ( ( '!=' ) ) );
+    public final void rule__BooleanCompareSymbol__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1875:1: ( ( ( '==' ) ) | ( ( '!=' ) ) )
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==18) ) {
+                alt15=1;
+            }
+            else if ( (LA15_0==19) ) {
+                alt15=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+            switch (alt15) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1876:2: ( ( '==' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1876:2: ( ( '==' ) )
+                    // InternalTestgeneratorDSL.g:1877:3: ( '==' )
+                    {
+                     before(grammarAccess.getBooleanCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); 
+                    // InternalTestgeneratorDSL.g:1878:3: ( '==' )
+                    // InternalTestgeneratorDSL.g:1878:4: '=='
+                    {
+                    match(input,18,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getBooleanCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0()); 
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1882:2: ( ( '!=' ) )
+                    {
+                    // InternalTestgeneratorDSL.g:1882:2: ( ( '!=' ) )
+                    // InternalTestgeneratorDSL.g:1883:3: ( '!=' )
+                    {
+                     before(grammarAccess.getBooleanCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); 
+                    // InternalTestgeneratorDSL.g:1884:3: ( '!=' )
+                    // InternalTestgeneratorDSL.g:1884:4: '!='
+                    {
+                    match(input,19,FOLLOW_2); 
+
+                    }
+
+                     after(grammarAccess.getBooleanCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1()); 
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompareSymbol__Alternatives"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__0"
+    // InternalTestgeneratorDSL.g:1892:1: rule__BPMNDiagram__Group__0 : rule__BPMNDiagram__Group__0__Impl rule__BPMNDiagram__Group__1 ;
+    public final void rule__BPMNDiagram__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1896:1: ( rule__BPMNDiagram__Group__0__Impl rule__BPMNDiagram__Group__1 )
+            // InternalTestgeneratorDSL.g:1897:2: rule__BPMNDiagram__Group__0__Impl rule__BPMNDiagram__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__BPMNDiagram__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:1904:1: rule__BPMNDiagram__Group__0__Impl : ( 'BPMNDiagram' ) ;
+    public final void rule__BPMNDiagram__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1908:1: ( ( 'BPMNDiagram' ) )
+            // InternalTestgeneratorDSL.g:1909:1: ( 'BPMNDiagram' )
+            {
+            // InternalTestgeneratorDSL.g:1909:1: ( 'BPMNDiagram' )
+            // InternalTestgeneratorDSL.g:1910:2: 'BPMNDiagram'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getBPMNDiagramKeyword_0()); 
+            match(input,24,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getBPMNDiagramKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__1"
+    // InternalTestgeneratorDSL.g:1919:1: rule__BPMNDiagram__Group__1 : rule__BPMNDiagram__Group__1__Impl rule__BPMNDiagram__Group__2 ;
+    public final void rule__BPMNDiagram__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1923:1: ( rule__BPMNDiagram__Group__1__Impl rule__BPMNDiagram__Group__2 )
+            // InternalTestgeneratorDSL.g:1924:2: rule__BPMNDiagram__Group__1__Impl rule__BPMNDiagram__Group__2
+            {
+            pushFollow(FOLLOW_5);
+            rule__BPMNDiagram__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:1931:1: rule__BPMNDiagram__Group__1__Impl : ( ( rule__BPMNDiagram__NameAssignment_1 ) ) ;
+    public final void rule__BPMNDiagram__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1935:1: ( ( ( rule__BPMNDiagram__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:1936:1: ( ( rule__BPMNDiagram__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:1936:1: ( ( rule__BPMNDiagram__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:1937:2: ( rule__BPMNDiagram__NameAssignment_1 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:1938:2: ( rule__BPMNDiagram__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:1938:3: rule__BPMNDiagram__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__2"
+    // InternalTestgeneratorDSL.g:1946:1: rule__BPMNDiagram__Group__2 : rule__BPMNDiagram__Group__2__Impl rule__BPMNDiagram__Group__3 ;
+    public final void rule__BPMNDiagram__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1950:1: ( rule__BPMNDiagram__Group__2__Impl rule__BPMNDiagram__Group__3 )
+            // InternalTestgeneratorDSL.g:1951:2: rule__BPMNDiagram__Group__2__Impl rule__BPMNDiagram__Group__3
+            {
+            pushFollow(FOLLOW_6);
+            rule__BPMNDiagram__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__2"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:1958:1: rule__BPMNDiagram__Group__2__Impl : ( 'with' ) ;
+    public final void rule__BPMNDiagram__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1962:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:1963:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:1963:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:1964:2: 'with'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_2()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__3"
+    // InternalTestgeneratorDSL.g:1973:1: rule__BPMNDiagram__Group__3 : rule__BPMNDiagram__Group__3__Impl rule__BPMNDiagram__Group__4 ;
+    public final void rule__BPMNDiagram__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1977:1: ( rule__BPMNDiagram__Group__3__Impl rule__BPMNDiagram__Group__4 )
+            // InternalTestgeneratorDSL.g:1978:2: rule__BPMNDiagram__Group__3__Impl rule__BPMNDiagram__Group__4
+            {
+            pushFollow(FOLLOW_7);
+            rule__BPMNDiagram__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__3"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:1985:1: rule__BPMNDiagram__Group__3__Impl : ( 'testpackage' ) ;
+    public final void rule__BPMNDiagram__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:1989:1: ( ( 'testpackage' ) )
+            // InternalTestgeneratorDSL.g:1990:1: ( 'testpackage' )
+            {
+            // InternalTestgeneratorDSL.g:1990:1: ( 'testpackage' )
+            // InternalTestgeneratorDSL.g:1991:2: 'testpackage'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getTestpackageKeyword_3()); 
+            match(input,26,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getTestpackageKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__3__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__4"
+    // InternalTestgeneratorDSL.g:2000:1: rule__BPMNDiagram__Group__4 : rule__BPMNDiagram__Group__4__Impl rule__BPMNDiagram__Group__5 ;
+    public final void rule__BPMNDiagram__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2004:1: ( rule__BPMNDiagram__Group__4__Impl rule__BPMNDiagram__Group__5 )
+            // InternalTestgeneratorDSL.g:2005:2: rule__BPMNDiagram__Group__4__Impl rule__BPMNDiagram__Group__5
+            {
+            pushFollow(FOLLOW_5);
+            rule__BPMNDiagram__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__4"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:2012:1: rule__BPMNDiagram__Group__4__Impl : ( ( rule__BPMNDiagram__TestpackageAssignment_4 ) ) ;
+    public final void rule__BPMNDiagram__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2016:1: ( ( ( rule__BPMNDiagram__TestpackageAssignment_4 ) ) )
+            // InternalTestgeneratorDSL.g:2017:1: ( ( rule__BPMNDiagram__TestpackageAssignment_4 ) )
+            {
+            // InternalTestgeneratorDSL.g:2017:1: ( ( rule__BPMNDiagram__TestpackageAssignment_4 ) )
+            // InternalTestgeneratorDSL.g:2018:2: ( rule__BPMNDiagram__TestpackageAssignment_4 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getTestpackageAssignment_4()); 
+            // InternalTestgeneratorDSL.g:2019:2: ( rule__BPMNDiagram__TestpackageAssignment_4 )
+            // InternalTestgeneratorDSL.g:2019:3: rule__BPMNDiagram__TestpackageAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__TestpackageAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getTestpackageAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__4__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__5"
+    // InternalTestgeneratorDSL.g:2027:1: rule__BPMNDiagram__Group__5 : rule__BPMNDiagram__Group__5__Impl rule__BPMNDiagram__Group__6 ;
+    public final void rule__BPMNDiagram__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2031:1: ( rule__BPMNDiagram__Group__5__Impl rule__BPMNDiagram__Group__6 )
+            // InternalTestgeneratorDSL.g:2032:2: rule__BPMNDiagram__Group__5__Impl rule__BPMNDiagram__Group__6
+            {
+            pushFollow(FOLLOW_8);
+            rule__BPMNDiagram__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__5"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:2039:1: rule__BPMNDiagram__Group__5__Impl : ( 'with' ) ;
+    public final void rule__BPMNDiagram__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2043:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:2044:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:2044:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:2045:2: 'with'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_5()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__5__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__6"
+    // InternalTestgeneratorDSL.g:2054:1: rule__BPMNDiagram__Group__6 : rule__BPMNDiagram__Group__6__Impl rule__BPMNDiagram__Group__7 ;
+    public final void rule__BPMNDiagram__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2058:1: ( rule__BPMNDiagram__Group__6__Impl rule__BPMNDiagram__Group__7 )
+            // InternalTestgeneratorDSL.g:2059:2: rule__BPMNDiagram__Group__6__Impl rule__BPMNDiagram__Group__7
+            {
+            pushFollow(FOLLOW_7);
+            rule__BPMNDiagram__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__6"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:2066:1: rule__BPMNDiagram__Group__6__Impl : ( 'bpmn' ) ;
+    public final void rule__BPMNDiagram__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2070:1: ( ( 'bpmn' ) )
+            // InternalTestgeneratorDSL.g:2071:1: ( 'bpmn' )
+            {
+            // InternalTestgeneratorDSL.g:2071:1: ( 'bpmn' )
+            // InternalTestgeneratorDSL.g:2072:2: 'bpmn'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getBpmnKeyword_6()); 
+            match(input,27,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getBpmnKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__6__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__7"
+    // InternalTestgeneratorDSL.g:2081:1: rule__BPMNDiagram__Group__7 : rule__BPMNDiagram__Group__7__Impl rule__BPMNDiagram__Group__8 ;
+    public final void rule__BPMNDiagram__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2085:1: ( rule__BPMNDiagram__Group__7__Impl rule__BPMNDiagram__Group__8 )
+            // InternalTestgeneratorDSL.g:2086:2: rule__BPMNDiagram__Group__7__Impl rule__BPMNDiagram__Group__8
+            {
+            pushFollow(FOLLOW_5);
+            rule__BPMNDiagram__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__7"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:2093:1: rule__BPMNDiagram__Group__7__Impl : ( ( rule__BPMNDiagram__BpmnAssignment_7 ) ) ;
+    public final void rule__BPMNDiagram__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2097:1: ( ( ( rule__BPMNDiagram__BpmnAssignment_7 ) ) )
+            // InternalTestgeneratorDSL.g:2098:1: ( ( rule__BPMNDiagram__BpmnAssignment_7 ) )
+            {
+            // InternalTestgeneratorDSL.g:2098:1: ( ( rule__BPMNDiagram__BpmnAssignment_7 ) )
+            // InternalTestgeneratorDSL.g:2099:2: ( rule__BPMNDiagram__BpmnAssignment_7 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getBpmnAssignment_7()); 
+            // InternalTestgeneratorDSL.g:2100:2: ( rule__BPMNDiagram__BpmnAssignment_7 )
+            // InternalTestgeneratorDSL.g:2100:3: rule__BPMNDiagram__BpmnAssignment_7
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__BpmnAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getBpmnAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__7__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__8"
+    // InternalTestgeneratorDSL.g:2108:1: rule__BPMNDiagram__Group__8 : rule__BPMNDiagram__Group__8__Impl rule__BPMNDiagram__Group__9 ;
+    public final void rule__BPMNDiagram__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2112:1: ( rule__BPMNDiagram__Group__8__Impl rule__BPMNDiagram__Group__9 )
+            // InternalTestgeneratorDSL.g:2113:2: rule__BPMNDiagram__Group__8__Impl rule__BPMNDiagram__Group__9
+            {
+            pushFollow(FOLLOW_9);
+            rule__BPMNDiagram__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__8"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:2120:1: rule__BPMNDiagram__Group__8__Impl : ( 'with' ) ;
+    public final void rule__BPMNDiagram__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2124:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:2125:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:2125:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:2126:2: 'with'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_8()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__8__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__9"
+    // InternalTestgeneratorDSL.g:2135:1: rule__BPMNDiagram__Group__9 : rule__BPMNDiagram__Group__9__Impl rule__BPMNDiagram__Group__10 ;
+    public final void rule__BPMNDiagram__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2139:1: ( rule__BPMNDiagram__Group__9__Impl rule__BPMNDiagram__Group__10 )
+            // InternalTestgeneratorDSL.g:2140:2: rule__BPMNDiagram__Group__9__Impl rule__BPMNDiagram__Group__10
+            {
+            pushFollow(FOLLOW_7);
+            rule__BPMNDiagram__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__9"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__9__Impl"
+    // InternalTestgeneratorDSL.g:2147:1: rule__BPMNDiagram__Group__9__Impl : ( 'key' ) ;
+    public final void rule__BPMNDiagram__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2151:1: ( ( 'key' ) )
+            // InternalTestgeneratorDSL.g:2152:1: ( 'key' )
+            {
+            // InternalTestgeneratorDSL.g:2152:1: ( 'key' )
+            // InternalTestgeneratorDSL.g:2153:2: 'key'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getKeyKeyword_9()); 
+            match(input,28,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getKeyKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__9__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__10"
+    // InternalTestgeneratorDSL.g:2162:1: rule__BPMNDiagram__Group__10 : rule__BPMNDiagram__Group__10__Impl rule__BPMNDiagram__Group__11 ;
+    public final void rule__BPMNDiagram__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2166:1: ( rule__BPMNDiagram__Group__10__Impl rule__BPMNDiagram__Group__11 )
+            // InternalTestgeneratorDSL.g:2167:2: rule__BPMNDiagram__Group__10__Impl rule__BPMNDiagram__Group__11
+            {
+            pushFollow(FOLLOW_10);
+            rule__BPMNDiagram__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__10"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__10__Impl"
+    // InternalTestgeneratorDSL.g:2174:1: rule__BPMNDiagram__Group__10__Impl : ( ( rule__BPMNDiagram__KeyAssignment_10 ) ) ;
+    public final void rule__BPMNDiagram__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2178:1: ( ( ( rule__BPMNDiagram__KeyAssignment_10 ) ) )
+            // InternalTestgeneratorDSL.g:2179:1: ( ( rule__BPMNDiagram__KeyAssignment_10 ) )
+            {
+            // InternalTestgeneratorDSL.g:2179:1: ( ( rule__BPMNDiagram__KeyAssignment_10 ) )
+            // InternalTestgeneratorDSL.g:2180:2: ( rule__BPMNDiagram__KeyAssignment_10 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getKeyAssignment_10()); 
+            // InternalTestgeneratorDSL.g:2181:2: ( rule__BPMNDiagram__KeyAssignment_10 )
+            // InternalTestgeneratorDSL.g:2181:3: rule__BPMNDiagram__KeyAssignment_10
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__KeyAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getKeyAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__10__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__11"
+    // InternalTestgeneratorDSL.g:2189:1: rule__BPMNDiagram__Group__11 : rule__BPMNDiagram__Group__11__Impl rule__BPMNDiagram__Group__12 ;
+    public final void rule__BPMNDiagram__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2193:1: ( rule__BPMNDiagram__Group__11__Impl rule__BPMNDiagram__Group__12 )
+            // InternalTestgeneratorDSL.g:2194:2: rule__BPMNDiagram__Group__11__Impl rule__BPMNDiagram__Group__12
+            {
+            pushFollow(FOLLOW_10);
+            rule__BPMNDiagram__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__11"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__11__Impl"
+    // InternalTestgeneratorDSL.g:2201:1: rule__BPMNDiagram__Group__11__Impl : ( ( rule__BPMNDiagram__Group_11__0 )? ) ;
+    public final void rule__BPMNDiagram__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2205:1: ( ( ( rule__BPMNDiagram__Group_11__0 )? ) )
+            // InternalTestgeneratorDSL.g:2206:1: ( ( rule__BPMNDiagram__Group_11__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:2206:1: ( ( rule__BPMNDiagram__Group_11__0 )? )
+            // InternalTestgeneratorDSL.g:2207:2: ( rule__BPMNDiagram__Group_11__0 )?
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getGroup_11()); 
+            // InternalTestgeneratorDSL.g:2208:2: ( rule__BPMNDiagram__Group_11__0 )?
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==25) ) {
+                int LA16_1 = input.LA(2);
+
+                if ( (LA16_1==29) ) {
+                    alt16=1;
+                }
+            }
+            switch (alt16) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2208:3: rule__BPMNDiagram__Group_11__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__BPMNDiagram__Group_11__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getGroup_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__11__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__12"
+    // InternalTestgeneratorDSL.g:2216:1: rule__BPMNDiagram__Group__12 : rule__BPMNDiagram__Group__12__Impl rule__BPMNDiagram__Group__13 ;
+    public final void rule__BPMNDiagram__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2220:1: ( rule__BPMNDiagram__Group__12__Impl rule__BPMNDiagram__Group__13 )
+            // InternalTestgeneratorDSL.g:2221:2: rule__BPMNDiagram__Group__12__Impl rule__BPMNDiagram__Group__13
+            {
+            pushFollow(FOLLOW_10);
+            rule__BPMNDiagram__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__12"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__12__Impl"
+    // InternalTestgeneratorDSL.g:2228:1: rule__BPMNDiagram__Group__12__Impl : ( ( rule__BPMNDiagram__Group_12__0 )? ) ;
+    public final void rule__BPMNDiagram__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2232:1: ( ( ( rule__BPMNDiagram__Group_12__0 )? ) )
+            // InternalTestgeneratorDSL.g:2233:1: ( ( rule__BPMNDiagram__Group_12__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:2233:1: ( ( rule__BPMNDiagram__Group_12__0 )? )
+            // InternalTestgeneratorDSL.g:2234:2: ( rule__BPMNDiagram__Group_12__0 )?
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getGroup_12()); 
+            // InternalTestgeneratorDSL.g:2235:2: ( rule__BPMNDiagram__Group_12__0 )?
+            int alt17=2;
+            int LA17_0 = input.LA(1);
+
+            if ( (LA17_0==25) ) {
+                alt17=1;
+            }
+            switch (alt17) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2235:3: rule__BPMNDiagram__Group_12__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__BPMNDiagram__Group_12__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getGroup_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__12__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__13"
+    // InternalTestgeneratorDSL.g:2243:1: rule__BPMNDiagram__Group__13 : rule__BPMNDiagram__Group__13__Impl ;
+    public final void rule__BPMNDiagram__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2247:1: ( rule__BPMNDiagram__Group__13__Impl )
+            // InternalTestgeneratorDSL.g:2248:2: rule__BPMNDiagram__Group__13__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group__13__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__13"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group__13__Impl"
+    // InternalTestgeneratorDSL.g:2254:1: rule__BPMNDiagram__Group__13__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__BPMNDiagram__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2258:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:2259:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:2259:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:2260:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getDECLARATION_FINISHEDTerminalRuleCall_13()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getDECLARATION_FINISHEDTerminalRuleCall_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group__13__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__0"
+    // InternalTestgeneratorDSL.g:2270:1: rule__BPMNDiagram__Group_11__0 : rule__BPMNDiagram__Group_11__0__Impl rule__BPMNDiagram__Group_11__1 ;
+    public final void rule__BPMNDiagram__Group_11__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2274:1: ( rule__BPMNDiagram__Group_11__0__Impl rule__BPMNDiagram__Group_11__1 )
+            // InternalTestgeneratorDSL.g:2275:2: rule__BPMNDiagram__Group_11__0__Impl rule__BPMNDiagram__Group_11__1
+            {
+            pushFollow(FOLLOW_11);
+            rule__BPMNDiagram__Group_11__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__0__Impl"
+    // InternalTestgeneratorDSL.g:2282:1: rule__BPMNDiagram__Group_11__0__Impl : ( 'with' ) ;
+    public final void rule__BPMNDiagram__Group_11__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2286:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:2287:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:2287:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:2288:2: 'with'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_11_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_11_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__0__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__1"
+    // InternalTestgeneratorDSL.g:2297:1: rule__BPMNDiagram__Group_11__1 : rule__BPMNDiagram__Group_11__1__Impl rule__BPMNDiagram__Group_11__2 ;
+    public final void rule__BPMNDiagram__Group_11__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2301:1: ( rule__BPMNDiagram__Group_11__1__Impl rule__BPMNDiagram__Group_11__2 )
+            // InternalTestgeneratorDSL.g:2302:2: rule__BPMNDiagram__Group_11__1__Impl rule__BPMNDiagram__Group_11__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__BPMNDiagram__Group_11__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__1__Impl"
+    // InternalTestgeneratorDSL.g:2309:1: rule__BPMNDiagram__Group_11__1__Impl : ( 'dmn' ) ;
+    public final void rule__BPMNDiagram__Group_11__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2313:1: ( ( 'dmn' ) )
+            // InternalTestgeneratorDSL.g:2314:1: ( 'dmn' )
+            {
+            // InternalTestgeneratorDSL.g:2314:1: ( 'dmn' )
+            // InternalTestgeneratorDSL.g:2315:2: 'dmn'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getDmnKeyword_11_1()); 
+            match(input,29,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getDmnKeyword_11_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__1__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__2"
+    // InternalTestgeneratorDSL.g:2324:1: rule__BPMNDiagram__Group_11__2 : rule__BPMNDiagram__Group_11__2__Impl rule__BPMNDiagram__Group_11__3 ;
+    public final void rule__BPMNDiagram__Group_11__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2328:1: ( rule__BPMNDiagram__Group_11__2__Impl rule__BPMNDiagram__Group_11__3 )
+            // InternalTestgeneratorDSL.g:2329:2: rule__BPMNDiagram__Group_11__2__Impl rule__BPMNDiagram__Group_11__3
+            {
+            pushFollow(FOLLOW_13);
+            rule__BPMNDiagram__Group_11__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__2"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__2__Impl"
+    // InternalTestgeneratorDSL.g:2336:1: rule__BPMNDiagram__Group_11__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__BPMNDiagram__Group_11__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2340:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:2341:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:2341:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:2342:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_11_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_11_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__2__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__3"
+    // InternalTestgeneratorDSL.g:2351:1: rule__BPMNDiagram__Group_11__3 : rule__BPMNDiagram__Group_11__3__Impl rule__BPMNDiagram__Group_11__4 ;
+    public final void rule__BPMNDiagram__Group_11__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2355:1: ( rule__BPMNDiagram__Group_11__3__Impl rule__BPMNDiagram__Group_11__4 )
+            // InternalTestgeneratorDSL.g:2356:2: rule__BPMNDiagram__Group_11__3__Impl rule__BPMNDiagram__Group_11__4
+            {
+            pushFollow(FOLLOW_14);
+            rule__BPMNDiagram__Group_11__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__3"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__3__Impl"
+    // InternalTestgeneratorDSL.g:2363:1: rule__BPMNDiagram__Group_11__3__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__BPMNDiagram__Group_11__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2367:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:2368:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:2368:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:2369:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_11_3()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_11_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__3__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__4"
+    // InternalTestgeneratorDSL.g:2378:1: rule__BPMNDiagram__Group_11__4 : rule__BPMNDiagram__Group_11__4__Impl rule__BPMNDiagram__Group_11__5 ;
+    public final void rule__BPMNDiagram__Group_11__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2382:1: ( rule__BPMNDiagram__Group_11__4__Impl rule__BPMNDiagram__Group_11__5 )
+            // InternalTestgeneratorDSL.g:2383:2: rule__BPMNDiagram__Group_11__4__Impl rule__BPMNDiagram__Group_11__5
+            {
+            pushFollow(FOLLOW_14);
+            rule__BPMNDiagram__Group_11__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__4"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__4__Impl"
+    // InternalTestgeneratorDSL.g:2390:1: rule__BPMNDiagram__Group_11__4__Impl : ( ( rule__BPMNDiagram__Group_11_4__0 )? ) ;
+    public final void rule__BPMNDiagram__Group_11__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2394:1: ( ( ( rule__BPMNDiagram__Group_11_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:2395:1: ( ( rule__BPMNDiagram__Group_11_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:2395:1: ( ( rule__BPMNDiagram__Group_11_4__0 )? )
+            // InternalTestgeneratorDSL.g:2396:2: ( rule__BPMNDiagram__Group_11_4__0 )?
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getGroup_11_4()); 
+            // InternalTestgeneratorDSL.g:2397:2: ( rule__BPMNDiagram__Group_11_4__0 )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==RULE_STRING) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2397:3: rule__BPMNDiagram__Group_11_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__BPMNDiagram__Group_11_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getGroup_11_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__4__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__5"
+    // InternalTestgeneratorDSL.g:2405:1: rule__BPMNDiagram__Group_11__5 : rule__BPMNDiagram__Group_11__5__Impl ;
+    public final void rule__BPMNDiagram__Group_11__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2409:1: ( rule__BPMNDiagram__Group_11__5__Impl )
+            // InternalTestgeneratorDSL.g:2410:2: rule__BPMNDiagram__Group_11__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__5"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11__5__Impl"
+    // InternalTestgeneratorDSL.g:2416:1: rule__BPMNDiagram__Group_11__5__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__BPMNDiagram__Group_11__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2420:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:2421:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:2421:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:2422:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_11_5()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_11_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11__5__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11_4__0"
+    // InternalTestgeneratorDSL.g:2432:1: rule__BPMNDiagram__Group_11_4__0 : rule__BPMNDiagram__Group_11_4__0__Impl rule__BPMNDiagram__Group_11_4__1 ;
+    public final void rule__BPMNDiagram__Group_11_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2436:1: ( rule__BPMNDiagram__Group_11_4__0__Impl rule__BPMNDiagram__Group_11_4__1 )
+            // InternalTestgeneratorDSL.g:2437:2: rule__BPMNDiagram__Group_11_4__0__Impl rule__BPMNDiagram__Group_11_4__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__BPMNDiagram__Group_11_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11_4__0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11_4__0__Impl"
+    // InternalTestgeneratorDSL.g:2444:1: rule__BPMNDiagram__Group_11_4__0__Impl : ( ( rule__BPMNDiagram__DmnAssignment_11_4_0 ) ) ;
+    public final void rule__BPMNDiagram__Group_11_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2448:1: ( ( ( rule__BPMNDiagram__DmnAssignment_11_4_0 ) ) )
+            // InternalTestgeneratorDSL.g:2449:1: ( ( rule__BPMNDiagram__DmnAssignment_11_4_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:2449:1: ( ( rule__BPMNDiagram__DmnAssignment_11_4_0 ) )
+            // InternalTestgeneratorDSL.g:2450:2: ( rule__BPMNDiagram__DmnAssignment_11_4_0 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_0()); 
+            // InternalTestgeneratorDSL.g:2451:2: ( rule__BPMNDiagram__DmnAssignment_11_4_0 )
+            // InternalTestgeneratorDSL.g:2451:3: rule__BPMNDiagram__DmnAssignment_11_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__DmnAssignment_11_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11_4__0__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11_4__1"
+    // InternalTestgeneratorDSL.g:2459:1: rule__BPMNDiagram__Group_11_4__1 : rule__BPMNDiagram__Group_11_4__1__Impl ;
+    public final void rule__BPMNDiagram__Group_11_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2463:1: ( rule__BPMNDiagram__Group_11_4__1__Impl )
+            // InternalTestgeneratorDSL.g:2464:2: rule__BPMNDiagram__Group_11_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11_4__1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11_4__1__Impl"
+    // InternalTestgeneratorDSL.g:2470:1: rule__BPMNDiagram__Group_11_4__1__Impl : ( ( rule__BPMNDiagram__Group_11_4_1__0 )* ) ;
+    public final void rule__BPMNDiagram__Group_11_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2474:1: ( ( ( rule__BPMNDiagram__Group_11_4_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:2475:1: ( ( rule__BPMNDiagram__Group_11_4_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:2475:1: ( ( rule__BPMNDiagram__Group_11_4_1__0 )* )
+            // InternalTestgeneratorDSL.g:2476:2: ( rule__BPMNDiagram__Group_11_4_1__0 )*
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getGroup_11_4_1()); 
+            // InternalTestgeneratorDSL.g:2477:2: ( rule__BPMNDiagram__Group_11_4_1__0 )*
+            loop19:
+            do {
+                int alt19=2;
+                int LA19_0 = input.LA(1);
+
+                if ( (LA19_0==RULE_SEPARATOR) ) {
+                    alt19=1;
+                }
+
+
+                switch (alt19) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:2477:3: rule__BPMNDiagram__Group_11_4_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__BPMNDiagram__Group_11_4_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop19;
+                }
+            } while (true);
+
+             after(grammarAccess.getBPMNDiagramAccess().getGroup_11_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11_4__1__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11_4_1__0"
+    // InternalTestgeneratorDSL.g:2486:1: rule__BPMNDiagram__Group_11_4_1__0 : rule__BPMNDiagram__Group_11_4_1__0__Impl rule__BPMNDiagram__Group_11_4_1__1 ;
+    public final void rule__BPMNDiagram__Group_11_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2490:1: ( rule__BPMNDiagram__Group_11_4_1__0__Impl rule__BPMNDiagram__Group_11_4_1__1 )
+            // InternalTestgeneratorDSL.g:2491:2: rule__BPMNDiagram__Group_11_4_1__0__Impl rule__BPMNDiagram__Group_11_4_1__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__BPMNDiagram__Group_11_4_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11_4_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11_4_1__0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11_4_1__0__Impl"
+    // InternalTestgeneratorDSL.g:2498:1: rule__BPMNDiagram__Group_11_4_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__BPMNDiagram__Group_11_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2502:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:2503:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:2503:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:2504:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_11_4_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_11_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11_4_1__1"
+    // InternalTestgeneratorDSL.g:2513:1: rule__BPMNDiagram__Group_11_4_1__1 : rule__BPMNDiagram__Group_11_4_1__1__Impl ;
+    public final void rule__BPMNDiagram__Group_11_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2517:1: ( rule__BPMNDiagram__Group_11_4_1__1__Impl )
+            // InternalTestgeneratorDSL.g:2518:2: rule__BPMNDiagram__Group_11_4_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_11_4_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11_4_1__1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_11_4_1__1__Impl"
+    // InternalTestgeneratorDSL.g:2524:1: rule__BPMNDiagram__Group_11_4_1__1__Impl : ( ( rule__BPMNDiagram__DmnAssignment_11_4_1_1 ) ) ;
+    public final void rule__BPMNDiagram__Group_11_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2528:1: ( ( ( rule__BPMNDiagram__DmnAssignment_11_4_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:2529:1: ( ( rule__BPMNDiagram__DmnAssignment_11_4_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:2529:1: ( ( rule__BPMNDiagram__DmnAssignment_11_4_1_1 ) )
+            // InternalTestgeneratorDSL.g:2530:2: ( rule__BPMNDiagram__DmnAssignment_11_4_1_1 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_1_1()); 
+            // InternalTestgeneratorDSL.g:2531:2: ( rule__BPMNDiagram__DmnAssignment_11_4_1_1 )
+            // InternalTestgeneratorDSL.g:2531:3: rule__BPMNDiagram__DmnAssignment_11_4_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__DmnAssignment_11_4_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getDmnAssignment_11_4_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_11_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__0"
+    // InternalTestgeneratorDSL.g:2540:1: rule__BPMNDiagram__Group_12__0 : rule__BPMNDiagram__Group_12__0__Impl rule__BPMNDiagram__Group_12__1 ;
+    public final void rule__BPMNDiagram__Group_12__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2544:1: ( rule__BPMNDiagram__Group_12__0__Impl rule__BPMNDiagram__Group_12__1 )
+            // InternalTestgeneratorDSL.g:2545:2: rule__BPMNDiagram__Group_12__0__Impl rule__BPMNDiagram__Group_12__1
+            {
+            pushFollow(FOLLOW_17);
+            rule__BPMNDiagram__Group_12__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__0__Impl"
+    // InternalTestgeneratorDSL.g:2552:1: rule__BPMNDiagram__Group_12__0__Impl : ( 'with' ) ;
+    public final void rule__BPMNDiagram__Group_12__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2556:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:2557:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:2557:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:2558:2: 'with'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getWithKeyword_12_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getWithKeyword_12_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__0__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__1"
+    // InternalTestgeneratorDSL.g:2567:1: rule__BPMNDiagram__Group_12__1 : rule__BPMNDiagram__Group_12__1__Impl rule__BPMNDiagram__Group_12__2 ;
+    public final void rule__BPMNDiagram__Group_12__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2571:1: ( rule__BPMNDiagram__Group_12__1__Impl rule__BPMNDiagram__Group_12__2 )
+            // InternalTestgeneratorDSL.g:2572:2: rule__BPMNDiagram__Group_12__1__Impl rule__BPMNDiagram__Group_12__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__BPMNDiagram__Group_12__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__1__Impl"
+    // InternalTestgeneratorDSL.g:2579:1: rule__BPMNDiagram__Group_12__1__Impl : ( 'embedded' ) ;
+    public final void rule__BPMNDiagram__Group_12__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2583:1: ( ( 'embedded' ) )
+            // InternalTestgeneratorDSL.g:2584:1: ( 'embedded' )
+            {
+            // InternalTestgeneratorDSL.g:2584:1: ( 'embedded' )
+            // InternalTestgeneratorDSL.g:2585:2: 'embedded'
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getEmbeddedKeyword_12_1()); 
+            match(input,30,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getEmbeddedKeyword_12_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__1__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__2"
+    // InternalTestgeneratorDSL.g:2594:1: rule__BPMNDiagram__Group_12__2 : rule__BPMNDiagram__Group_12__2__Impl rule__BPMNDiagram__Group_12__3 ;
+    public final void rule__BPMNDiagram__Group_12__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2598:1: ( rule__BPMNDiagram__Group_12__2__Impl rule__BPMNDiagram__Group_12__3 )
+            // InternalTestgeneratorDSL.g:2599:2: rule__BPMNDiagram__Group_12__2__Impl rule__BPMNDiagram__Group_12__3
+            {
+            pushFollow(FOLLOW_13);
+            rule__BPMNDiagram__Group_12__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__2"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__2__Impl"
+    // InternalTestgeneratorDSL.g:2606:1: rule__BPMNDiagram__Group_12__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__BPMNDiagram__Group_12__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2610:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:2611:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:2611:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:2612:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_12_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_12_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__2__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__3"
+    // InternalTestgeneratorDSL.g:2621:1: rule__BPMNDiagram__Group_12__3 : rule__BPMNDiagram__Group_12__3__Impl rule__BPMNDiagram__Group_12__4 ;
+    public final void rule__BPMNDiagram__Group_12__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2625:1: ( rule__BPMNDiagram__Group_12__3__Impl rule__BPMNDiagram__Group_12__4 )
+            // InternalTestgeneratorDSL.g:2626:2: rule__BPMNDiagram__Group_12__3__Impl rule__BPMNDiagram__Group_12__4
+            {
+            pushFollow(FOLLOW_14);
+            rule__BPMNDiagram__Group_12__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__3"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__3__Impl"
+    // InternalTestgeneratorDSL.g:2633:1: rule__BPMNDiagram__Group_12__3__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__BPMNDiagram__Group_12__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2637:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:2638:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:2638:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:2639:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_12_3()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_12_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__3__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__4"
+    // InternalTestgeneratorDSL.g:2648:1: rule__BPMNDiagram__Group_12__4 : rule__BPMNDiagram__Group_12__4__Impl rule__BPMNDiagram__Group_12__5 ;
+    public final void rule__BPMNDiagram__Group_12__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2652:1: ( rule__BPMNDiagram__Group_12__4__Impl rule__BPMNDiagram__Group_12__5 )
+            // InternalTestgeneratorDSL.g:2653:2: rule__BPMNDiagram__Group_12__4__Impl rule__BPMNDiagram__Group_12__5
+            {
+            pushFollow(FOLLOW_14);
+            rule__BPMNDiagram__Group_12__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__4"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__4__Impl"
+    // InternalTestgeneratorDSL.g:2660:1: rule__BPMNDiagram__Group_12__4__Impl : ( ( rule__BPMNDiagram__Group_12_4__0 )? ) ;
+    public final void rule__BPMNDiagram__Group_12__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2664:1: ( ( ( rule__BPMNDiagram__Group_12_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:2665:1: ( ( rule__BPMNDiagram__Group_12_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:2665:1: ( ( rule__BPMNDiagram__Group_12_4__0 )? )
+            // InternalTestgeneratorDSL.g:2666:2: ( rule__BPMNDiagram__Group_12_4__0 )?
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getGroup_12_4()); 
+            // InternalTestgeneratorDSL.g:2667:2: ( rule__BPMNDiagram__Group_12_4__0 )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==RULE_STRING) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2667:3: rule__BPMNDiagram__Group_12_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__BPMNDiagram__Group_12_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getGroup_12_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__4__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__5"
+    // InternalTestgeneratorDSL.g:2675:1: rule__BPMNDiagram__Group_12__5 : rule__BPMNDiagram__Group_12__5__Impl ;
+    public final void rule__BPMNDiagram__Group_12__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2679:1: ( rule__BPMNDiagram__Group_12__5__Impl )
+            // InternalTestgeneratorDSL.g:2680:2: rule__BPMNDiagram__Group_12__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__5"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12__5__Impl"
+    // InternalTestgeneratorDSL.g:2686:1: rule__BPMNDiagram__Group_12__5__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__BPMNDiagram__Group_12__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2690:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:2691:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:2691:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:2692:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_12_5()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_12_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12__5__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12_4__0"
+    // InternalTestgeneratorDSL.g:2702:1: rule__BPMNDiagram__Group_12_4__0 : rule__BPMNDiagram__Group_12_4__0__Impl rule__BPMNDiagram__Group_12_4__1 ;
+    public final void rule__BPMNDiagram__Group_12_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2706:1: ( rule__BPMNDiagram__Group_12_4__0__Impl rule__BPMNDiagram__Group_12_4__1 )
+            // InternalTestgeneratorDSL.g:2707:2: rule__BPMNDiagram__Group_12_4__0__Impl rule__BPMNDiagram__Group_12_4__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__BPMNDiagram__Group_12_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12_4__0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12_4__0__Impl"
+    // InternalTestgeneratorDSL.g:2714:1: rule__BPMNDiagram__Group_12_4__0__Impl : ( ( rule__BPMNDiagram__EmbeddedAssignment_12_4_0 ) ) ;
+    public final void rule__BPMNDiagram__Group_12_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2718:1: ( ( ( rule__BPMNDiagram__EmbeddedAssignment_12_4_0 ) ) )
+            // InternalTestgeneratorDSL.g:2719:1: ( ( rule__BPMNDiagram__EmbeddedAssignment_12_4_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:2719:1: ( ( rule__BPMNDiagram__EmbeddedAssignment_12_4_0 ) )
+            // InternalTestgeneratorDSL.g:2720:2: ( rule__BPMNDiagram__EmbeddedAssignment_12_4_0 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_0()); 
+            // InternalTestgeneratorDSL.g:2721:2: ( rule__BPMNDiagram__EmbeddedAssignment_12_4_0 )
+            // InternalTestgeneratorDSL.g:2721:3: rule__BPMNDiagram__EmbeddedAssignment_12_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__EmbeddedAssignment_12_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12_4__0__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12_4__1"
+    // InternalTestgeneratorDSL.g:2729:1: rule__BPMNDiagram__Group_12_4__1 : rule__BPMNDiagram__Group_12_4__1__Impl ;
+    public final void rule__BPMNDiagram__Group_12_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2733:1: ( rule__BPMNDiagram__Group_12_4__1__Impl )
+            // InternalTestgeneratorDSL.g:2734:2: rule__BPMNDiagram__Group_12_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12_4__1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12_4__1__Impl"
+    // InternalTestgeneratorDSL.g:2740:1: rule__BPMNDiagram__Group_12_4__1__Impl : ( ( rule__BPMNDiagram__Group_12_4_1__0 )* ) ;
+    public final void rule__BPMNDiagram__Group_12_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2744:1: ( ( ( rule__BPMNDiagram__Group_12_4_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:2745:1: ( ( rule__BPMNDiagram__Group_12_4_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:2745:1: ( ( rule__BPMNDiagram__Group_12_4_1__0 )* )
+            // InternalTestgeneratorDSL.g:2746:2: ( rule__BPMNDiagram__Group_12_4_1__0 )*
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getGroup_12_4_1()); 
+            // InternalTestgeneratorDSL.g:2747:2: ( rule__BPMNDiagram__Group_12_4_1__0 )*
+            loop21:
+            do {
+                int alt21=2;
+                int LA21_0 = input.LA(1);
+
+                if ( (LA21_0==RULE_SEPARATOR) ) {
+                    alt21=1;
+                }
+
+
+                switch (alt21) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:2747:3: rule__BPMNDiagram__Group_12_4_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__BPMNDiagram__Group_12_4_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop21;
+                }
+            } while (true);
+
+             after(grammarAccess.getBPMNDiagramAccess().getGroup_12_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12_4__1__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12_4_1__0"
+    // InternalTestgeneratorDSL.g:2756:1: rule__BPMNDiagram__Group_12_4_1__0 : rule__BPMNDiagram__Group_12_4_1__0__Impl rule__BPMNDiagram__Group_12_4_1__1 ;
+    public final void rule__BPMNDiagram__Group_12_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2760:1: ( rule__BPMNDiagram__Group_12_4_1__0__Impl rule__BPMNDiagram__Group_12_4_1__1 )
+            // InternalTestgeneratorDSL.g:2761:2: rule__BPMNDiagram__Group_12_4_1__0__Impl rule__BPMNDiagram__Group_12_4_1__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__BPMNDiagram__Group_12_4_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12_4_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12_4_1__0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12_4_1__0__Impl"
+    // InternalTestgeneratorDSL.g:2768:1: rule__BPMNDiagram__Group_12_4_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__BPMNDiagram__Group_12_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2772:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:2773:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:2773:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:2774:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_12_4_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_12_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12_4_1__1"
+    // InternalTestgeneratorDSL.g:2783:1: rule__BPMNDiagram__Group_12_4_1__1 : rule__BPMNDiagram__Group_12_4_1__1__Impl ;
+    public final void rule__BPMNDiagram__Group_12_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2787:1: ( rule__BPMNDiagram__Group_12_4_1__1__Impl )
+            // InternalTestgeneratorDSL.g:2788:2: rule__BPMNDiagram__Group_12_4_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__Group_12_4_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12_4_1__1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__Group_12_4_1__1__Impl"
+    // InternalTestgeneratorDSL.g:2794:1: rule__BPMNDiagram__Group_12_4_1__1__Impl : ( ( rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1 ) ) ;
+    public final void rule__BPMNDiagram__Group_12_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2798:1: ( ( ( rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:2799:1: ( ( rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:2799:1: ( ( rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1 ) )
+            // InternalTestgeneratorDSL.g:2800:2: ( rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1 )
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_1_1()); 
+            // InternalTestgeneratorDSL.g:2801:2: ( rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1 )
+            // InternalTestgeneratorDSL.g:2801:3: rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBPMNDiagramAccess().getEmbeddedAssignment_12_4_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__Group_12_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:2810:1: rule__StartFlowElement__Group__0 : rule__StartFlowElement__Group__0__Impl rule__StartFlowElement__Group__1 ;
+    public final void rule__StartFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2814:1: ( rule__StartFlowElement__Group__0__Impl rule__StartFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:2815:2: rule__StartFlowElement__Group__0__Impl rule__StartFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__StartFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:2822:1: rule__StartFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__StartFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2826:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:2827:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:2827:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:2828:2: 'FlowElement'
+            {
+             before(grammarAccess.getStartFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:2837:1: rule__StartFlowElement__Group__1 : rule__StartFlowElement__Group__1__Impl rule__StartFlowElement__Group__2 ;
+    public final void rule__StartFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2841:1: ( rule__StartFlowElement__Group__1__Impl rule__StartFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:2842:2: rule__StartFlowElement__Group__1__Impl rule__StartFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__StartFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:2849:1: rule__StartFlowElement__Group__1__Impl : ( ( rule__StartFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__StartFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2853:1: ( ( ( rule__StartFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:2854:1: ( ( rule__StartFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:2854:1: ( ( rule__StartFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:2855:2: ( rule__StartFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getStartFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:2856:2: ( rule__StartFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:2856:3: rule__StartFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:2864:1: rule__StartFlowElement__Group__2 : rule__StartFlowElement__Group__2__Impl rule__StartFlowElement__Group__3 ;
+    public final void rule__StartFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2868:1: ( rule__StartFlowElement__Group__2__Impl rule__StartFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:2869:2: rule__StartFlowElement__Group__2__Impl rule__StartFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_18);
+            rule__StartFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:2876:1: rule__StartFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__StartFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2880:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:2881:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:2881:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:2882:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:2891:1: rule__StartFlowElement__Group__3 : rule__StartFlowElement__Group__3__Impl rule__StartFlowElement__Group__4 ;
+    public final void rule__StartFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2895:1: ( rule__StartFlowElement__Group__3__Impl rule__StartFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:2896:2: rule__StartFlowElement__Group__3__Impl rule__StartFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_10);
+            rule__StartFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:2903:1: rule__StartFlowElement__Group__3__Impl : ( 'StartEvent' ) ;
+    public final void rule__StartFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2907:1: ( ( 'StartEvent' ) )
+            // InternalTestgeneratorDSL.g:2908:1: ( 'StartEvent' )
+            {
+            // InternalTestgeneratorDSL.g:2908:1: ( 'StartEvent' )
+            // InternalTestgeneratorDSL.g:2909:2: 'StartEvent'
+            {
+             before(grammarAccess.getStartFlowElementAccess().getStartEventKeyword_3()); 
+            match(input,32,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getStartEventKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:2918:1: rule__StartFlowElement__Group__4 : rule__StartFlowElement__Group__4__Impl rule__StartFlowElement__Group__5 ;
+    public final void rule__StartFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2922:1: ( rule__StartFlowElement__Group__4__Impl rule__StartFlowElement__Group__5 )
+            // InternalTestgeneratorDSL.g:2923:2: rule__StartFlowElement__Group__4__Impl rule__StartFlowElement__Group__5
+            {
+            pushFollow(FOLLOW_10);
+            rule__StartFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:2930:1: rule__StartFlowElement__Group__4__Impl : ( ( rule__StartFlowElement__Group_4__0 )? ) ;
+    public final void rule__StartFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2934:1: ( ( ( rule__StartFlowElement__Group_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:2935:1: ( ( rule__StartFlowElement__Group_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:2935:1: ( ( rule__StartFlowElement__Group_4__0 )? )
+            // InternalTestgeneratorDSL.g:2936:2: ( rule__StartFlowElement__Group_4__0 )?
+            {
+             before(grammarAccess.getStartFlowElementAccess().getGroup_4()); 
+            // InternalTestgeneratorDSL.g:2937:2: ( rule__StartFlowElement__Group_4__0 )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
+
+            if ( (LA22_0==25) ) {
+                alt22=1;
+            }
+            switch (alt22) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2937:3: rule__StartFlowElement__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__StartFlowElement__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStartFlowElementAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__5"
+    // InternalTestgeneratorDSL.g:2945:1: rule__StartFlowElement__Group__5 : rule__StartFlowElement__Group__5__Impl ;
+    public final void rule__StartFlowElement__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2949:1: ( rule__StartFlowElement__Group__5__Impl )
+            // InternalTestgeneratorDSL.g:2950:2: rule__StartFlowElement__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__5"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:2956:1: rule__StartFlowElement__Group__5__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__StartFlowElement__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2960:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:2961:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:2961:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:2962:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getStartFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group__5__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__0"
+    // InternalTestgeneratorDSL.g:2972:1: rule__StartFlowElement__Group_4__0 : rule__StartFlowElement__Group_4__0__Impl rule__StartFlowElement__Group_4__1 ;
+    public final void rule__StartFlowElement__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2976:1: ( rule__StartFlowElement__Group_4__0__Impl rule__StartFlowElement__Group_4__1 )
+            // InternalTestgeneratorDSL.g:2977:2: rule__StartFlowElement__Group_4__0__Impl rule__StartFlowElement__Group_4__1
+            {
+            pushFollow(FOLLOW_19);
+            rule__StartFlowElement__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__0"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__0__Impl"
+    // InternalTestgeneratorDSL.g:2984:1: rule__StartFlowElement__Group_4__0__Impl : ( 'with' ) ;
+    public final void rule__StartFlowElement__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:2988:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:2989:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:2989:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:2990:2: 'with'
+            {
+             before(grammarAccess.getStartFlowElementAccess().getWithKeyword_4_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getWithKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__1"
+    // InternalTestgeneratorDSL.g:2999:1: rule__StartFlowElement__Group_4__1 : rule__StartFlowElement__Group_4__1__Impl rule__StartFlowElement__Group_4__2 ;
+    public final void rule__StartFlowElement__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3003:1: ( rule__StartFlowElement__Group_4__1__Impl rule__StartFlowElement__Group_4__2 )
+            // InternalTestgeneratorDSL.g:3004:2: rule__StartFlowElement__Group_4__1__Impl rule__StartFlowElement__Group_4__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__StartFlowElement__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__1"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__1__Impl"
+    // InternalTestgeneratorDSL.g:3011:1: rule__StartFlowElement__Group_4__1__Impl : ( 'inputVariables' ) ;
+    public final void rule__StartFlowElement__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3015:1: ( ( 'inputVariables' ) )
+            // InternalTestgeneratorDSL.g:3016:1: ( 'inputVariables' )
+            {
+            // InternalTestgeneratorDSL.g:3016:1: ( 'inputVariables' )
+            // InternalTestgeneratorDSL.g:3017:2: 'inputVariables'
+            {
+             before(grammarAccess.getStartFlowElementAccess().getInputVariablesKeyword_4_1()); 
+            match(input,33,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getInputVariablesKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__2"
+    // InternalTestgeneratorDSL.g:3026:1: rule__StartFlowElement__Group_4__2 : rule__StartFlowElement__Group_4__2__Impl rule__StartFlowElement__Group_4__3 ;
+    public final void rule__StartFlowElement__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3030:1: ( rule__StartFlowElement__Group_4__2__Impl rule__StartFlowElement__Group_4__3 )
+            // InternalTestgeneratorDSL.g:3031:2: rule__StartFlowElement__Group_4__2__Impl rule__StartFlowElement__Group_4__3
+            {
+            pushFollow(FOLLOW_13);
+            rule__StartFlowElement__Group_4__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__2"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__2__Impl"
+    // InternalTestgeneratorDSL.g:3038:1: rule__StartFlowElement__Group_4__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__StartFlowElement__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3042:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:3043:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:3043:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:3044:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__3"
+    // InternalTestgeneratorDSL.g:3053:1: rule__StartFlowElement__Group_4__3 : rule__StartFlowElement__Group_4__3__Impl rule__StartFlowElement__Group_4__4 ;
+    public final void rule__StartFlowElement__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3057:1: ( rule__StartFlowElement__Group_4__3__Impl rule__StartFlowElement__Group_4__4 )
+            // InternalTestgeneratorDSL.g:3058:2: rule__StartFlowElement__Group_4__3__Impl rule__StartFlowElement__Group_4__4
+            {
+            pushFollow(FOLLOW_20);
+            rule__StartFlowElement__Group_4__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__3"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__3__Impl"
+    // InternalTestgeneratorDSL.g:3065:1: rule__StartFlowElement__Group_4__3__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__StartFlowElement__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3069:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:3070:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:3070:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:3071:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getStartFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__4"
+    // InternalTestgeneratorDSL.g:3080:1: rule__StartFlowElement__Group_4__4 : rule__StartFlowElement__Group_4__4__Impl rule__StartFlowElement__Group_4__5 ;
+    public final void rule__StartFlowElement__Group_4__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3084:1: ( rule__StartFlowElement__Group_4__4__Impl rule__StartFlowElement__Group_4__5 )
+            // InternalTestgeneratorDSL.g:3085:2: rule__StartFlowElement__Group_4__4__Impl rule__StartFlowElement__Group_4__5
+            {
+            pushFollow(FOLLOW_20);
+            rule__StartFlowElement__Group_4__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__4"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__4__Impl"
+    // InternalTestgeneratorDSL.g:3092:1: rule__StartFlowElement__Group_4__4__Impl : ( ( rule__StartFlowElement__Group_4_4__0 )? ) ;
+    public final void rule__StartFlowElement__Group_4__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3096:1: ( ( ( rule__StartFlowElement__Group_4_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:3097:1: ( ( rule__StartFlowElement__Group_4_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:3097:1: ( ( rule__StartFlowElement__Group_4_4__0 )? )
+            // InternalTestgeneratorDSL.g:3098:2: ( rule__StartFlowElement__Group_4_4__0 )?
+            {
+             before(grammarAccess.getStartFlowElementAccess().getGroup_4_4()); 
+            // InternalTestgeneratorDSL.g:3099:2: ( rule__StartFlowElement__Group_4_4__0 )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==RULE_ID) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3099:3: rule__StartFlowElement__Group_4_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__StartFlowElement__Group_4_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStartFlowElementAccess().getGroup_4_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__4__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__5"
+    // InternalTestgeneratorDSL.g:3107:1: rule__StartFlowElement__Group_4__5 : rule__StartFlowElement__Group_4__5__Impl ;
+    public final void rule__StartFlowElement__Group_4__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3111:1: ( rule__StartFlowElement__Group_4__5__Impl )
+            // InternalTestgeneratorDSL.g:3112:2: rule__StartFlowElement__Group_4__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__5"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4__5__Impl"
+    // InternalTestgeneratorDSL.g:3118:1: rule__StartFlowElement__Group_4__5__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__StartFlowElement__Group_4__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3122:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:3123:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:3123:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:3124:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getStartFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4__5__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4_4__0"
+    // InternalTestgeneratorDSL.g:3134:1: rule__StartFlowElement__Group_4_4__0 : rule__StartFlowElement__Group_4_4__0__Impl rule__StartFlowElement__Group_4_4__1 ;
+    public final void rule__StartFlowElement__Group_4_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3138:1: ( rule__StartFlowElement__Group_4_4__0__Impl rule__StartFlowElement__Group_4_4__1 )
+            // InternalTestgeneratorDSL.g:3139:2: rule__StartFlowElement__Group_4_4__0__Impl rule__StartFlowElement__Group_4_4__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__StartFlowElement__Group_4_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4_4__0"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4_4__0__Impl"
+    // InternalTestgeneratorDSL.g:3146:1: rule__StartFlowElement__Group_4_4__0__Impl : ( ( rule__StartFlowElement__InputVariablesAssignment_4_4_0 ) ) ;
+    public final void rule__StartFlowElement__Group_4_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3150:1: ( ( ( rule__StartFlowElement__InputVariablesAssignment_4_4_0 ) ) )
+            // InternalTestgeneratorDSL.g:3151:1: ( ( rule__StartFlowElement__InputVariablesAssignment_4_4_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:3151:1: ( ( rule__StartFlowElement__InputVariablesAssignment_4_4_0 ) )
+            // InternalTestgeneratorDSL.g:3152:2: ( rule__StartFlowElement__InputVariablesAssignment_4_4_0 )
+            {
+             before(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_0()); 
+            // InternalTestgeneratorDSL.g:3153:2: ( rule__StartFlowElement__InputVariablesAssignment_4_4_0 )
+            // InternalTestgeneratorDSL.g:3153:3: rule__StartFlowElement__InputVariablesAssignment_4_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__InputVariablesAssignment_4_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4_4__0__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4_4__1"
+    // InternalTestgeneratorDSL.g:3161:1: rule__StartFlowElement__Group_4_4__1 : rule__StartFlowElement__Group_4_4__1__Impl ;
+    public final void rule__StartFlowElement__Group_4_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3165:1: ( rule__StartFlowElement__Group_4_4__1__Impl )
+            // InternalTestgeneratorDSL.g:3166:2: rule__StartFlowElement__Group_4_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4_4__1"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4_4__1__Impl"
+    // InternalTestgeneratorDSL.g:3172:1: rule__StartFlowElement__Group_4_4__1__Impl : ( ( rule__StartFlowElement__Group_4_4_1__0 )* ) ;
+    public final void rule__StartFlowElement__Group_4_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3176:1: ( ( ( rule__StartFlowElement__Group_4_4_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:3177:1: ( ( rule__StartFlowElement__Group_4_4_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:3177:1: ( ( rule__StartFlowElement__Group_4_4_1__0 )* )
+            // InternalTestgeneratorDSL.g:3178:2: ( rule__StartFlowElement__Group_4_4_1__0 )*
+            {
+             before(grammarAccess.getStartFlowElementAccess().getGroup_4_4_1()); 
+            // InternalTestgeneratorDSL.g:3179:2: ( rule__StartFlowElement__Group_4_4_1__0 )*
+            loop24:
+            do {
+                int alt24=2;
+                int LA24_0 = input.LA(1);
+
+                if ( (LA24_0==RULE_SEPARATOR) ) {
+                    alt24=1;
+                }
+
+
+                switch (alt24) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:3179:3: rule__StartFlowElement__Group_4_4_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__StartFlowElement__Group_4_4_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop24;
+                }
+            } while (true);
+
+             after(grammarAccess.getStartFlowElementAccess().getGroup_4_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4_4__1__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4_4_1__0"
+    // InternalTestgeneratorDSL.g:3188:1: rule__StartFlowElement__Group_4_4_1__0 : rule__StartFlowElement__Group_4_4_1__0__Impl rule__StartFlowElement__Group_4_4_1__1 ;
+    public final void rule__StartFlowElement__Group_4_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3192:1: ( rule__StartFlowElement__Group_4_4_1__0__Impl rule__StartFlowElement__Group_4_4_1__1 )
+            // InternalTestgeneratorDSL.g:3193:2: rule__StartFlowElement__Group_4_4_1__0__Impl rule__StartFlowElement__Group_4_4_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__StartFlowElement__Group_4_4_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4_4_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4_4_1__0"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4_4_1__0__Impl"
+    // InternalTestgeneratorDSL.g:3200:1: rule__StartFlowElement__Group_4_4_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__StartFlowElement__Group_4_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3204:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:3205:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:3205:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:3206:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getStartFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4_4_1__1"
+    // InternalTestgeneratorDSL.g:3215:1: rule__StartFlowElement__Group_4_4_1__1 : rule__StartFlowElement__Group_4_4_1__1__Impl ;
+    public final void rule__StartFlowElement__Group_4_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3219:1: ( rule__StartFlowElement__Group_4_4_1__1__Impl )
+            // InternalTestgeneratorDSL.g:3220:2: rule__StartFlowElement__Group_4_4_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__Group_4_4_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4_4_1__1"
+
+
+    // $ANTLR start "rule__StartFlowElement__Group_4_4_1__1__Impl"
+    // InternalTestgeneratorDSL.g:3226:1: rule__StartFlowElement__Group_4_4_1__1__Impl : ( ( rule__StartFlowElement__InputVariablesAssignment_4_4_1_1 ) ) ;
+    public final void rule__StartFlowElement__Group_4_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3230:1: ( ( ( rule__StartFlowElement__InputVariablesAssignment_4_4_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:3231:1: ( ( rule__StartFlowElement__InputVariablesAssignment_4_4_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:3231:1: ( ( rule__StartFlowElement__InputVariablesAssignment_4_4_1_1 ) )
+            // InternalTestgeneratorDSL.g:3232:2: ( rule__StartFlowElement__InputVariablesAssignment_4_4_1_1 )
+            {
+             before(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_1_1()); 
+            // InternalTestgeneratorDSL.g:3233:2: ( rule__StartFlowElement__InputVariablesAssignment_4_4_1_1 )
+            // InternalTestgeneratorDSL.g:3233:3: rule__StartFlowElement__InputVariablesAssignment_4_4_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__StartFlowElement__InputVariablesAssignment_4_4_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStartFlowElementAccess().getInputVariablesAssignment_4_4_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__Group_4_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:3242:1: rule__EndFlowElement__Group__0 : rule__EndFlowElement__Group__0__Impl rule__EndFlowElement__Group__1 ;
+    public final void rule__EndFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3246:1: ( rule__EndFlowElement__Group__0__Impl rule__EndFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:3247:2: rule__EndFlowElement__Group__0__Impl rule__EndFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__EndFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:3254:1: rule__EndFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__EndFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3258:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:3259:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:3259:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:3260:2: 'FlowElement'
+            {
+             before(grammarAccess.getEndFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getEndFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:3269:1: rule__EndFlowElement__Group__1 : rule__EndFlowElement__Group__1__Impl rule__EndFlowElement__Group__2 ;
+    public final void rule__EndFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3273:1: ( rule__EndFlowElement__Group__1__Impl rule__EndFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:3274:2: rule__EndFlowElement__Group__1__Impl rule__EndFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__EndFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:3281:1: rule__EndFlowElement__Group__1__Impl : ( ( rule__EndFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__EndFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3285:1: ( ( ( rule__EndFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:3286:1: ( ( rule__EndFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:3286:1: ( ( rule__EndFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:3287:2: ( rule__EndFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getEndFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:3288:2: ( rule__EndFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:3288:3: rule__EndFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:3296:1: rule__EndFlowElement__Group__2 : rule__EndFlowElement__Group__2__Impl rule__EndFlowElement__Group__3 ;
+    public final void rule__EndFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3300:1: ( rule__EndFlowElement__Group__2__Impl rule__EndFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:3301:2: rule__EndFlowElement__Group__2__Impl rule__EndFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_21);
+            rule__EndFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:3308:1: rule__EndFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__EndFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3312:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:3313:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:3313:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:3314:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getEndFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getEndFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:3323:1: rule__EndFlowElement__Group__3 : rule__EndFlowElement__Group__3__Impl rule__EndFlowElement__Group__4 ;
+    public final void rule__EndFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3327:1: ( rule__EndFlowElement__Group__3__Impl rule__EndFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:3328:2: rule__EndFlowElement__Group__3__Impl rule__EndFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_22);
+            rule__EndFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:3335:1: rule__EndFlowElement__Group__3__Impl : ( 'EndEvent' ) ;
+    public final void rule__EndFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3339:1: ( ( 'EndEvent' ) )
+            // InternalTestgeneratorDSL.g:3340:1: ( 'EndEvent' )
+            {
+            // InternalTestgeneratorDSL.g:3340:1: ( 'EndEvent' )
+            // InternalTestgeneratorDSL.g:3341:2: 'EndEvent'
+            {
+             before(grammarAccess.getEndFlowElementAccess().getEndEventKeyword_3()); 
+            match(input,34,FOLLOW_2); 
+             after(grammarAccess.getEndFlowElementAccess().getEndEventKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:3350:1: rule__EndFlowElement__Group__4 : rule__EndFlowElement__Group__4__Impl ;
+    public final void rule__EndFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3354:1: ( rule__EndFlowElement__Group__4__Impl )
+            // InternalTestgeneratorDSL.g:3355:2: rule__EndFlowElement__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__EndFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:3361:1: rule__EndFlowElement__Group__4__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__EndFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3365:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:3366:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:3366:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:3367:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getEndFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getEndFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:3377:1: rule__UserTaskFlowElement__Group__0 : rule__UserTaskFlowElement__Group__0__Impl rule__UserTaskFlowElement__Group__1 ;
+    public final void rule__UserTaskFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3381:1: ( rule__UserTaskFlowElement__Group__0__Impl rule__UserTaskFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:3382:2: rule__UserTaskFlowElement__Group__0__Impl rule__UserTaskFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__UserTaskFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:3389:1: rule__UserTaskFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__UserTaskFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3393:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:3394:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:3394:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:3395:2: 'FlowElement'
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:3404:1: rule__UserTaskFlowElement__Group__1 : rule__UserTaskFlowElement__Group__1__Impl rule__UserTaskFlowElement__Group__2 ;
+    public final void rule__UserTaskFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3408:1: ( rule__UserTaskFlowElement__Group__1__Impl rule__UserTaskFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:3409:2: rule__UserTaskFlowElement__Group__1__Impl rule__UserTaskFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__UserTaskFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:3416:1: rule__UserTaskFlowElement__Group__1__Impl : ( ( rule__UserTaskFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__UserTaskFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3420:1: ( ( ( rule__UserTaskFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:3421:1: ( ( rule__UserTaskFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:3421:1: ( ( rule__UserTaskFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:3422:2: ( rule__UserTaskFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:3423:2: ( rule__UserTaskFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:3423:3: rule__UserTaskFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:3431:1: rule__UserTaskFlowElement__Group__2 : rule__UserTaskFlowElement__Group__2__Impl rule__UserTaskFlowElement__Group__3 ;
+    public final void rule__UserTaskFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3435:1: ( rule__UserTaskFlowElement__Group__2__Impl rule__UserTaskFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:3436:2: rule__UserTaskFlowElement__Group__2__Impl rule__UserTaskFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_23);
+            rule__UserTaskFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:3443:1: rule__UserTaskFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__UserTaskFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3447:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:3448:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:3448:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:3449:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:3458:1: rule__UserTaskFlowElement__Group__3 : rule__UserTaskFlowElement__Group__3__Impl rule__UserTaskFlowElement__Group__4 ;
+    public final void rule__UserTaskFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3462:1: ( rule__UserTaskFlowElement__Group__3__Impl rule__UserTaskFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:3463:2: rule__UserTaskFlowElement__Group__3__Impl rule__UserTaskFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_10);
+            rule__UserTaskFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:3470:1: rule__UserTaskFlowElement__Group__3__Impl : ( 'UserTask' ) ;
+    public final void rule__UserTaskFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3474:1: ( ( 'UserTask' ) )
+            // InternalTestgeneratorDSL.g:3475:1: ( 'UserTask' )
+            {
+            // InternalTestgeneratorDSL.g:3475:1: ( 'UserTask' )
+            // InternalTestgeneratorDSL.g:3476:2: 'UserTask'
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getUserTaskKeyword_3()); 
+            match(input,35,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getUserTaskKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:3485:1: rule__UserTaskFlowElement__Group__4 : rule__UserTaskFlowElement__Group__4__Impl rule__UserTaskFlowElement__Group__5 ;
+    public final void rule__UserTaskFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3489:1: ( rule__UserTaskFlowElement__Group__4__Impl rule__UserTaskFlowElement__Group__5 )
+            // InternalTestgeneratorDSL.g:3490:2: rule__UserTaskFlowElement__Group__4__Impl rule__UserTaskFlowElement__Group__5
+            {
+            pushFollow(FOLLOW_10);
+            rule__UserTaskFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:3497:1: rule__UserTaskFlowElement__Group__4__Impl : ( ( rule__UserTaskFlowElement__Group_4__0 )? ) ;
+    public final void rule__UserTaskFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3501:1: ( ( ( rule__UserTaskFlowElement__Group_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:3502:1: ( ( rule__UserTaskFlowElement__Group_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:3502:1: ( ( rule__UserTaskFlowElement__Group_4__0 )? )
+            // InternalTestgeneratorDSL.g:3503:2: ( rule__UserTaskFlowElement__Group_4__0 )?
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getGroup_4()); 
+            // InternalTestgeneratorDSL.g:3504:2: ( rule__UserTaskFlowElement__Group_4__0 )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==25) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3504:3: rule__UserTaskFlowElement__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__UserTaskFlowElement__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__5"
+    // InternalTestgeneratorDSL.g:3512:1: rule__UserTaskFlowElement__Group__5 : rule__UserTaskFlowElement__Group__5__Impl ;
+    public final void rule__UserTaskFlowElement__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3516:1: ( rule__UserTaskFlowElement__Group__5__Impl )
+            // InternalTestgeneratorDSL.g:3517:2: rule__UserTaskFlowElement__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__5"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:3523:1: rule__UserTaskFlowElement__Group__5__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__UserTaskFlowElement__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3527:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:3528:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:3528:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:3529:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group__5__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__0"
+    // InternalTestgeneratorDSL.g:3539:1: rule__UserTaskFlowElement__Group_4__0 : rule__UserTaskFlowElement__Group_4__0__Impl rule__UserTaskFlowElement__Group_4__1 ;
+    public final void rule__UserTaskFlowElement__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3543:1: ( rule__UserTaskFlowElement__Group_4__0__Impl rule__UserTaskFlowElement__Group_4__1 )
+            // InternalTestgeneratorDSL.g:3544:2: rule__UserTaskFlowElement__Group_4__0__Impl rule__UserTaskFlowElement__Group_4__1
+            {
+            pushFollow(FOLLOW_19);
+            rule__UserTaskFlowElement__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__0"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__0__Impl"
+    // InternalTestgeneratorDSL.g:3551:1: rule__UserTaskFlowElement__Group_4__0__Impl : ( 'with' ) ;
+    public final void rule__UserTaskFlowElement__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3555:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:3556:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:3556:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:3557:2: 'with'
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getWithKeyword_4_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getWithKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__1"
+    // InternalTestgeneratorDSL.g:3566:1: rule__UserTaskFlowElement__Group_4__1 : rule__UserTaskFlowElement__Group_4__1__Impl rule__UserTaskFlowElement__Group_4__2 ;
+    public final void rule__UserTaskFlowElement__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3570:1: ( rule__UserTaskFlowElement__Group_4__1__Impl rule__UserTaskFlowElement__Group_4__2 )
+            // InternalTestgeneratorDSL.g:3571:2: rule__UserTaskFlowElement__Group_4__1__Impl rule__UserTaskFlowElement__Group_4__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__UserTaskFlowElement__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__1"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__1__Impl"
+    // InternalTestgeneratorDSL.g:3578:1: rule__UserTaskFlowElement__Group_4__1__Impl : ( 'inputVariables' ) ;
+    public final void rule__UserTaskFlowElement__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3582:1: ( ( 'inputVariables' ) )
+            // InternalTestgeneratorDSL.g:3583:1: ( 'inputVariables' )
+            {
+            // InternalTestgeneratorDSL.g:3583:1: ( 'inputVariables' )
+            // InternalTestgeneratorDSL.g:3584:2: 'inputVariables'
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesKeyword_4_1()); 
+            match(input,33,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__2"
+    // InternalTestgeneratorDSL.g:3593:1: rule__UserTaskFlowElement__Group_4__2 : rule__UserTaskFlowElement__Group_4__2__Impl rule__UserTaskFlowElement__Group_4__3 ;
+    public final void rule__UserTaskFlowElement__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3597:1: ( rule__UserTaskFlowElement__Group_4__2__Impl rule__UserTaskFlowElement__Group_4__3 )
+            // InternalTestgeneratorDSL.g:3598:2: rule__UserTaskFlowElement__Group_4__2__Impl rule__UserTaskFlowElement__Group_4__3
+            {
+            pushFollow(FOLLOW_13);
+            rule__UserTaskFlowElement__Group_4__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__2"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__2__Impl"
+    // InternalTestgeneratorDSL.g:3605:1: rule__UserTaskFlowElement__Group_4__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__UserTaskFlowElement__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3609:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:3610:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:3610:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:3611:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__3"
+    // InternalTestgeneratorDSL.g:3620:1: rule__UserTaskFlowElement__Group_4__3 : rule__UserTaskFlowElement__Group_4__3__Impl rule__UserTaskFlowElement__Group_4__4 ;
+    public final void rule__UserTaskFlowElement__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3624:1: ( rule__UserTaskFlowElement__Group_4__3__Impl rule__UserTaskFlowElement__Group_4__4 )
+            // InternalTestgeneratorDSL.g:3625:2: rule__UserTaskFlowElement__Group_4__3__Impl rule__UserTaskFlowElement__Group_4__4
+            {
+            pushFollow(FOLLOW_20);
+            rule__UserTaskFlowElement__Group_4__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__3"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__3__Impl"
+    // InternalTestgeneratorDSL.g:3632:1: rule__UserTaskFlowElement__Group_4__3__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__UserTaskFlowElement__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3636:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:3637:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:3637:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:3638:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__4"
+    // InternalTestgeneratorDSL.g:3647:1: rule__UserTaskFlowElement__Group_4__4 : rule__UserTaskFlowElement__Group_4__4__Impl rule__UserTaskFlowElement__Group_4__5 ;
+    public final void rule__UserTaskFlowElement__Group_4__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3651:1: ( rule__UserTaskFlowElement__Group_4__4__Impl rule__UserTaskFlowElement__Group_4__5 )
+            // InternalTestgeneratorDSL.g:3652:2: rule__UserTaskFlowElement__Group_4__4__Impl rule__UserTaskFlowElement__Group_4__5
+            {
+            pushFollow(FOLLOW_20);
+            rule__UserTaskFlowElement__Group_4__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__4"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__4__Impl"
+    // InternalTestgeneratorDSL.g:3659:1: rule__UserTaskFlowElement__Group_4__4__Impl : ( ( rule__UserTaskFlowElement__Group_4_4__0 )? ) ;
+    public final void rule__UserTaskFlowElement__Group_4__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3663:1: ( ( ( rule__UserTaskFlowElement__Group_4_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:3664:1: ( ( rule__UserTaskFlowElement__Group_4_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:3664:1: ( ( rule__UserTaskFlowElement__Group_4_4__0 )? )
+            // InternalTestgeneratorDSL.g:3665:2: ( rule__UserTaskFlowElement__Group_4_4__0 )?
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4()); 
+            // InternalTestgeneratorDSL.g:3666:2: ( rule__UserTaskFlowElement__Group_4_4__0 )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
+
+            if ( (LA26_0==RULE_ID) ) {
+                alt26=1;
+            }
+            switch (alt26) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3666:3: rule__UserTaskFlowElement__Group_4_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__UserTaskFlowElement__Group_4_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__4__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__5"
+    // InternalTestgeneratorDSL.g:3674:1: rule__UserTaskFlowElement__Group_4__5 : rule__UserTaskFlowElement__Group_4__5__Impl ;
+    public final void rule__UserTaskFlowElement__Group_4__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3678:1: ( rule__UserTaskFlowElement__Group_4__5__Impl )
+            // InternalTestgeneratorDSL.g:3679:2: rule__UserTaskFlowElement__Group_4__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__5"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4__5__Impl"
+    // InternalTestgeneratorDSL.g:3685:1: rule__UserTaskFlowElement__Group_4__5__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__UserTaskFlowElement__Group_4__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3689:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:3690:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:3690:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:3691:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4__5__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4_4__0"
+    // InternalTestgeneratorDSL.g:3701:1: rule__UserTaskFlowElement__Group_4_4__0 : rule__UserTaskFlowElement__Group_4_4__0__Impl rule__UserTaskFlowElement__Group_4_4__1 ;
+    public final void rule__UserTaskFlowElement__Group_4_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3705:1: ( rule__UserTaskFlowElement__Group_4_4__0__Impl rule__UserTaskFlowElement__Group_4_4__1 )
+            // InternalTestgeneratorDSL.g:3706:2: rule__UserTaskFlowElement__Group_4_4__0__Impl rule__UserTaskFlowElement__Group_4_4__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__UserTaskFlowElement__Group_4_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4_4__0"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4_4__0__Impl"
+    // InternalTestgeneratorDSL.g:3713:1: rule__UserTaskFlowElement__Group_4_4__0__Impl : ( ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0 ) ) ;
+    public final void rule__UserTaskFlowElement__Group_4_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3717:1: ( ( ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0 ) ) )
+            // InternalTestgeneratorDSL.g:3718:1: ( ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:3718:1: ( ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0 ) )
+            // InternalTestgeneratorDSL.g:3719:2: ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0 )
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_0()); 
+            // InternalTestgeneratorDSL.g:3720:2: ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0 )
+            // InternalTestgeneratorDSL.g:3720:3: rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4_4__0__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4_4__1"
+    // InternalTestgeneratorDSL.g:3728:1: rule__UserTaskFlowElement__Group_4_4__1 : rule__UserTaskFlowElement__Group_4_4__1__Impl ;
+    public final void rule__UserTaskFlowElement__Group_4_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3732:1: ( rule__UserTaskFlowElement__Group_4_4__1__Impl )
+            // InternalTestgeneratorDSL.g:3733:2: rule__UserTaskFlowElement__Group_4_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4_4__1"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4_4__1__Impl"
+    // InternalTestgeneratorDSL.g:3739:1: rule__UserTaskFlowElement__Group_4_4__1__Impl : ( ( rule__UserTaskFlowElement__Group_4_4_1__0 )* ) ;
+    public final void rule__UserTaskFlowElement__Group_4_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3743:1: ( ( ( rule__UserTaskFlowElement__Group_4_4_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:3744:1: ( ( rule__UserTaskFlowElement__Group_4_4_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:3744:1: ( ( rule__UserTaskFlowElement__Group_4_4_1__0 )* )
+            // InternalTestgeneratorDSL.g:3745:2: ( rule__UserTaskFlowElement__Group_4_4_1__0 )*
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4_1()); 
+            // InternalTestgeneratorDSL.g:3746:2: ( rule__UserTaskFlowElement__Group_4_4_1__0 )*
+            loop27:
+            do {
+                int alt27=2;
+                int LA27_0 = input.LA(1);
+
+                if ( (LA27_0==RULE_SEPARATOR) ) {
+                    alt27=1;
+                }
+
+
+                switch (alt27) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:3746:3: rule__UserTaskFlowElement__Group_4_4_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__UserTaskFlowElement__Group_4_4_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop27;
+                }
+            } while (true);
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getGroup_4_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4_4__1__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4_4_1__0"
+    // InternalTestgeneratorDSL.g:3755:1: rule__UserTaskFlowElement__Group_4_4_1__0 : rule__UserTaskFlowElement__Group_4_4_1__0__Impl rule__UserTaskFlowElement__Group_4_4_1__1 ;
+    public final void rule__UserTaskFlowElement__Group_4_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3759:1: ( rule__UserTaskFlowElement__Group_4_4_1__0__Impl rule__UserTaskFlowElement__Group_4_4_1__1 )
+            // InternalTestgeneratorDSL.g:3760:2: rule__UserTaskFlowElement__Group_4_4_1__0__Impl rule__UserTaskFlowElement__Group_4_4_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__UserTaskFlowElement__Group_4_4_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4_4_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4_4_1__0"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4_4_1__0__Impl"
+    // InternalTestgeneratorDSL.g:3767:1: rule__UserTaskFlowElement__Group_4_4_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__UserTaskFlowElement__Group_4_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3771:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:3772:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:3772:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:3773:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4_4_1__1"
+    // InternalTestgeneratorDSL.g:3782:1: rule__UserTaskFlowElement__Group_4_4_1__1 : rule__UserTaskFlowElement__Group_4_4_1__1__Impl ;
+    public final void rule__UserTaskFlowElement__Group_4_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3786:1: ( rule__UserTaskFlowElement__Group_4_4_1__1__Impl )
+            // InternalTestgeneratorDSL.g:3787:2: rule__UserTaskFlowElement__Group_4_4_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__Group_4_4_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4_4_1__1"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__Group_4_4_1__1__Impl"
+    // InternalTestgeneratorDSL.g:3793:1: rule__UserTaskFlowElement__Group_4_4_1__1__Impl : ( ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1 ) ) ;
+    public final void rule__UserTaskFlowElement__Group_4_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3797:1: ( ( ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:3798:1: ( ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:3798:1: ( ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1 ) )
+            // InternalTestgeneratorDSL.g:3799:2: ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1 )
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_1_1()); 
+            // InternalTestgeneratorDSL.g:3800:2: ( rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1 )
+            // InternalTestgeneratorDSL.g:3800:3: rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesAssignment_4_4_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__Group_4_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:3809:1: rule__ManualTaskFlowElement__Group__0 : rule__ManualTaskFlowElement__Group__0__Impl rule__ManualTaskFlowElement__Group__1 ;
+    public final void rule__ManualTaskFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3813:1: ( rule__ManualTaskFlowElement__Group__0__Impl rule__ManualTaskFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:3814:2: rule__ManualTaskFlowElement__Group__0__Impl rule__ManualTaskFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__ManualTaskFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualTaskFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:3821:1: rule__ManualTaskFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__ManualTaskFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3825:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:3826:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:3826:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:3827:2: 'FlowElement'
+            {
+             before(grammarAccess.getManualTaskFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getManualTaskFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:3836:1: rule__ManualTaskFlowElement__Group__1 : rule__ManualTaskFlowElement__Group__1__Impl rule__ManualTaskFlowElement__Group__2 ;
+    public final void rule__ManualTaskFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3840:1: ( rule__ManualTaskFlowElement__Group__1__Impl rule__ManualTaskFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:3841:2: rule__ManualTaskFlowElement__Group__1__Impl rule__ManualTaskFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__ManualTaskFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualTaskFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:3848:1: rule__ManualTaskFlowElement__Group__1__Impl : ( ( rule__ManualTaskFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__ManualTaskFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3852:1: ( ( ( rule__ManualTaskFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:3853:1: ( ( rule__ManualTaskFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:3853:1: ( ( rule__ManualTaskFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:3854:2: ( rule__ManualTaskFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getManualTaskFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:3855:2: ( rule__ManualTaskFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:3855:3: rule__ManualTaskFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ManualTaskFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getManualTaskFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:3863:1: rule__ManualTaskFlowElement__Group__2 : rule__ManualTaskFlowElement__Group__2__Impl rule__ManualTaskFlowElement__Group__3 ;
+    public final void rule__ManualTaskFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3867:1: ( rule__ManualTaskFlowElement__Group__2__Impl rule__ManualTaskFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:3868:2: rule__ManualTaskFlowElement__Group__2__Impl rule__ManualTaskFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_24);
+            rule__ManualTaskFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualTaskFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:3875:1: rule__ManualTaskFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__ManualTaskFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3879:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:3880:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:3880:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:3881:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getManualTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getManualTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:3890:1: rule__ManualTaskFlowElement__Group__3 : rule__ManualTaskFlowElement__Group__3__Impl rule__ManualTaskFlowElement__Group__4 ;
+    public final void rule__ManualTaskFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3894:1: ( rule__ManualTaskFlowElement__Group__3__Impl rule__ManualTaskFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:3895:2: rule__ManualTaskFlowElement__Group__3__Impl rule__ManualTaskFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_22);
+            rule__ManualTaskFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualTaskFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:3902:1: rule__ManualTaskFlowElement__Group__3__Impl : ( 'ManualTask' ) ;
+    public final void rule__ManualTaskFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3906:1: ( ( 'ManualTask' ) )
+            // InternalTestgeneratorDSL.g:3907:1: ( 'ManualTask' )
+            {
+            // InternalTestgeneratorDSL.g:3907:1: ( 'ManualTask' )
+            // InternalTestgeneratorDSL.g:3908:2: 'ManualTask'
+            {
+             before(grammarAccess.getManualTaskFlowElementAccess().getManualTaskKeyword_3()); 
+            match(input,36,FOLLOW_2); 
+             after(grammarAccess.getManualTaskFlowElementAccess().getManualTaskKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:3917:1: rule__ManualTaskFlowElement__Group__4 : rule__ManualTaskFlowElement__Group__4__Impl ;
+    public final void rule__ManualTaskFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3921:1: ( rule__ManualTaskFlowElement__Group__4__Impl )
+            // InternalTestgeneratorDSL.g:3922:2: rule__ManualTaskFlowElement__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ManualTaskFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:3928:1: rule__ManualTaskFlowElement__Group__4__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__ManualTaskFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3932:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:3933:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:3933:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:3934:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getManualTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getManualTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:3944:1: rule__ScriptTaskFlowElement__Group__0 : rule__ScriptTaskFlowElement__Group__0__Impl rule__ScriptTaskFlowElement__Group__1 ;
+    public final void rule__ScriptTaskFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3948:1: ( rule__ScriptTaskFlowElement__Group__0__Impl rule__ScriptTaskFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:3949:2: rule__ScriptTaskFlowElement__Group__0__Impl rule__ScriptTaskFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__ScriptTaskFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ScriptTaskFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:3956:1: rule__ScriptTaskFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__ScriptTaskFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3960:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:3961:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:3961:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:3962:2: 'FlowElement'
+            {
+             before(grammarAccess.getScriptTaskFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getScriptTaskFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:3971:1: rule__ScriptTaskFlowElement__Group__1 : rule__ScriptTaskFlowElement__Group__1__Impl rule__ScriptTaskFlowElement__Group__2 ;
+    public final void rule__ScriptTaskFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3975:1: ( rule__ScriptTaskFlowElement__Group__1__Impl rule__ScriptTaskFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:3976:2: rule__ScriptTaskFlowElement__Group__1__Impl rule__ScriptTaskFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__ScriptTaskFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ScriptTaskFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:3983:1: rule__ScriptTaskFlowElement__Group__1__Impl : ( ( rule__ScriptTaskFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__ScriptTaskFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:3987:1: ( ( ( rule__ScriptTaskFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:3988:1: ( ( rule__ScriptTaskFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:3988:1: ( ( rule__ScriptTaskFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:3989:2: ( rule__ScriptTaskFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getScriptTaskFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:3990:2: ( rule__ScriptTaskFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:3990:3: rule__ScriptTaskFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ScriptTaskFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getScriptTaskFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:3998:1: rule__ScriptTaskFlowElement__Group__2 : rule__ScriptTaskFlowElement__Group__2__Impl rule__ScriptTaskFlowElement__Group__3 ;
+    public final void rule__ScriptTaskFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4002:1: ( rule__ScriptTaskFlowElement__Group__2__Impl rule__ScriptTaskFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:4003:2: rule__ScriptTaskFlowElement__Group__2__Impl rule__ScriptTaskFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_25);
+            rule__ScriptTaskFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ScriptTaskFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:4010:1: rule__ScriptTaskFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__ScriptTaskFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4014:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:4015:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:4015:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:4016:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getScriptTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getScriptTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:4025:1: rule__ScriptTaskFlowElement__Group__3 : rule__ScriptTaskFlowElement__Group__3__Impl rule__ScriptTaskFlowElement__Group__4 ;
+    public final void rule__ScriptTaskFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4029:1: ( rule__ScriptTaskFlowElement__Group__3__Impl rule__ScriptTaskFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:4030:2: rule__ScriptTaskFlowElement__Group__3__Impl rule__ScriptTaskFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_22);
+            rule__ScriptTaskFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ScriptTaskFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:4037:1: rule__ScriptTaskFlowElement__Group__3__Impl : ( 'ScriptTask' ) ;
+    public final void rule__ScriptTaskFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4041:1: ( ( 'ScriptTask' ) )
+            // InternalTestgeneratorDSL.g:4042:1: ( 'ScriptTask' )
+            {
+            // InternalTestgeneratorDSL.g:4042:1: ( 'ScriptTask' )
+            // InternalTestgeneratorDSL.g:4043:2: 'ScriptTask'
+            {
+             before(grammarAccess.getScriptTaskFlowElementAccess().getScriptTaskKeyword_3()); 
+            match(input,37,FOLLOW_2); 
+             after(grammarAccess.getScriptTaskFlowElementAccess().getScriptTaskKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:4052:1: rule__ScriptTaskFlowElement__Group__4 : rule__ScriptTaskFlowElement__Group__4__Impl ;
+    public final void rule__ScriptTaskFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4056:1: ( rule__ScriptTaskFlowElement__Group__4__Impl )
+            // InternalTestgeneratorDSL.g:4057:2: rule__ScriptTaskFlowElement__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ScriptTaskFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:4063:1: rule__ScriptTaskFlowElement__Group__4__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__ScriptTaskFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4067:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:4068:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:4068:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:4069:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getScriptTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getScriptTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:4079:1: rule__DelegateServiceTaskFlowElement__Group__0 : rule__DelegateServiceTaskFlowElement__Group__0__Impl rule__DelegateServiceTaskFlowElement__Group__1 ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4083:1: ( rule__DelegateServiceTaskFlowElement__Group__0__Impl rule__DelegateServiceTaskFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:4084:2: rule__DelegateServiceTaskFlowElement__Group__0__Impl rule__DelegateServiceTaskFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__DelegateServiceTaskFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:4091:1: rule__DelegateServiceTaskFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4095:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:4096:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:4096:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:4097:2: 'FlowElement'
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:4106:1: rule__DelegateServiceTaskFlowElement__Group__1 : rule__DelegateServiceTaskFlowElement__Group__1__Impl rule__DelegateServiceTaskFlowElement__Group__2 ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4110:1: ( rule__DelegateServiceTaskFlowElement__Group__1__Impl rule__DelegateServiceTaskFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:4111:2: rule__DelegateServiceTaskFlowElement__Group__1__Impl rule__DelegateServiceTaskFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__DelegateServiceTaskFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:4118:1: rule__DelegateServiceTaskFlowElement__Group__1__Impl : ( ( rule__DelegateServiceTaskFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4122:1: ( ( ( rule__DelegateServiceTaskFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:4123:1: ( ( rule__DelegateServiceTaskFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:4123:1: ( ( rule__DelegateServiceTaskFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:4124:2: ( rule__DelegateServiceTaskFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:4125:2: ( rule__DelegateServiceTaskFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:4125:3: rule__DelegateServiceTaskFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:4133:1: rule__DelegateServiceTaskFlowElement__Group__2 : rule__DelegateServiceTaskFlowElement__Group__2__Impl rule__DelegateServiceTaskFlowElement__Group__3 ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4137:1: ( rule__DelegateServiceTaskFlowElement__Group__2__Impl rule__DelegateServiceTaskFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:4138:2: rule__DelegateServiceTaskFlowElement__Group__2__Impl rule__DelegateServiceTaskFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_26);
+            rule__DelegateServiceTaskFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:4145:1: rule__DelegateServiceTaskFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4149:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:4150:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:4150:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:4151:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:4160:1: rule__DelegateServiceTaskFlowElement__Group__3 : rule__DelegateServiceTaskFlowElement__Group__3__Impl rule__DelegateServiceTaskFlowElement__Group__4 ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4164:1: ( rule__DelegateServiceTaskFlowElement__Group__3__Impl rule__DelegateServiceTaskFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:4165:2: rule__DelegateServiceTaskFlowElement__Group__3__Impl rule__DelegateServiceTaskFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_5);
+            rule__DelegateServiceTaskFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:4172:1: rule__DelegateServiceTaskFlowElement__Group__3__Impl : ( 'ServiceTask' ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4176:1: ( ( 'ServiceTask' ) )
+            // InternalTestgeneratorDSL.g:4177:1: ( 'ServiceTask' )
+            {
+            // InternalTestgeneratorDSL.g:4177:1: ( 'ServiceTask' )
+            // InternalTestgeneratorDSL.g:4178:2: 'ServiceTask'
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getServiceTaskKeyword_3()); 
+            match(input,38,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getServiceTaskKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:4187:1: rule__DelegateServiceTaskFlowElement__Group__4 : rule__DelegateServiceTaskFlowElement__Group__4__Impl rule__DelegateServiceTaskFlowElement__Group__5 ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4191:1: ( rule__DelegateServiceTaskFlowElement__Group__4__Impl rule__DelegateServiceTaskFlowElement__Group__5 )
+            // InternalTestgeneratorDSL.g:4192:2: rule__DelegateServiceTaskFlowElement__Group__4__Impl rule__DelegateServiceTaskFlowElement__Group__5
+            {
+            pushFollow(FOLLOW_27);
+            rule__DelegateServiceTaskFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:4199:1: rule__DelegateServiceTaskFlowElement__Group__4__Impl : ( 'with' ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4203:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:4204:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:4204:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:4205:2: 'with'
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getWithKeyword_4()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getWithKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__5"
+    // InternalTestgeneratorDSL.g:4214:1: rule__DelegateServiceTaskFlowElement__Group__5 : rule__DelegateServiceTaskFlowElement__Group__5__Impl rule__DelegateServiceTaskFlowElement__Group__6 ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4218:1: ( rule__DelegateServiceTaskFlowElement__Group__5__Impl rule__DelegateServiceTaskFlowElement__Group__6 )
+            // InternalTestgeneratorDSL.g:4219:2: rule__DelegateServiceTaskFlowElement__Group__5__Impl rule__DelegateServiceTaskFlowElement__Group__6
+            {
+            pushFollow(FOLLOW_12);
+            rule__DelegateServiceTaskFlowElement__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__5"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:4226:1: rule__DelegateServiceTaskFlowElement__Group__5__Impl : ( 'delegate' ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4230:1: ( ( 'delegate' ) )
+            // InternalTestgeneratorDSL.g:4231:1: ( 'delegate' )
+            {
+            // InternalTestgeneratorDSL.g:4231:1: ( 'delegate' )
+            // InternalTestgeneratorDSL.g:4232:2: 'delegate'
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateKeyword_5()); 
+            match(input,39,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__5__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__6"
+    // InternalTestgeneratorDSL.g:4241:1: rule__DelegateServiceTaskFlowElement__Group__6 : rule__DelegateServiceTaskFlowElement__Group__6__Impl rule__DelegateServiceTaskFlowElement__Group__7 ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4245:1: ( rule__DelegateServiceTaskFlowElement__Group__6__Impl rule__DelegateServiceTaskFlowElement__Group__7 )
+            // InternalTestgeneratorDSL.g:4246:2: rule__DelegateServiceTaskFlowElement__Group__6__Impl rule__DelegateServiceTaskFlowElement__Group__7
+            {
+            pushFollow(FOLLOW_7);
+            rule__DelegateServiceTaskFlowElement__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__6"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:4253:1: rule__DelegateServiceTaskFlowElement__Group__6__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4257:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:4258:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:4258:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:4259:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__6__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__7"
+    // InternalTestgeneratorDSL.g:4268:1: rule__DelegateServiceTaskFlowElement__Group__7 : rule__DelegateServiceTaskFlowElement__Group__7__Impl rule__DelegateServiceTaskFlowElement__Group__8 ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4272:1: ( rule__DelegateServiceTaskFlowElement__Group__7__Impl rule__DelegateServiceTaskFlowElement__Group__8 )
+            // InternalTestgeneratorDSL.g:4273:2: rule__DelegateServiceTaskFlowElement__Group__7__Impl rule__DelegateServiceTaskFlowElement__Group__8
+            {
+            pushFollow(FOLLOW_22);
+            rule__DelegateServiceTaskFlowElement__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__7"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:4280:1: rule__DelegateServiceTaskFlowElement__Group__7__Impl : ( ( rule__DelegateServiceTaskFlowElement__DelegateAssignment_7 ) ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4284:1: ( ( ( rule__DelegateServiceTaskFlowElement__DelegateAssignment_7 ) ) )
+            // InternalTestgeneratorDSL.g:4285:1: ( ( rule__DelegateServiceTaskFlowElement__DelegateAssignment_7 ) )
+            {
+            // InternalTestgeneratorDSL.g:4285:1: ( ( rule__DelegateServiceTaskFlowElement__DelegateAssignment_7 ) )
+            // InternalTestgeneratorDSL.g:4286:2: ( rule__DelegateServiceTaskFlowElement__DelegateAssignment_7 )
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateAssignment_7()); 
+            // InternalTestgeneratorDSL.g:4287:2: ( rule__DelegateServiceTaskFlowElement__DelegateAssignment_7 )
+            // InternalTestgeneratorDSL.g:4287:3: rule__DelegateServiceTaskFlowElement__DelegateAssignment_7
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__DelegateAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__7__Impl"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__8"
+    // InternalTestgeneratorDSL.g:4295:1: rule__DelegateServiceTaskFlowElement__Group__8 : rule__DelegateServiceTaskFlowElement__Group__8__Impl ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4299:1: ( rule__DelegateServiceTaskFlowElement__Group__8__Impl )
+            // InternalTestgeneratorDSL.g:4300:2: rule__DelegateServiceTaskFlowElement__Group__8__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateServiceTaskFlowElement__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__8"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:4306:1: rule__DelegateServiceTaskFlowElement__Group__8__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__DelegateServiceTaskFlowElement__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4310:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:4311:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:4311:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:4312:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:4322:1: rule__ExternalServiceTaskFlowElement__Group__0 : rule__ExternalServiceTaskFlowElement__Group__0__Impl rule__ExternalServiceTaskFlowElement__Group__1 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4326:1: ( rule__ExternalServiceTaskFlowElement__Group__0__Impl rule__ExternalServiceTaskFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:4327:2: rule__ExternalServiceTaskFlowElement__Group__0__Impl rule__ExternalServiceTaskFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__ExternalServiceTaskFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:4334:1: rule__ExternalServiceTaskFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4338:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:4339:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:4339:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:4340:2: 'FlowElement'
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:4349:1: rule__ExternalServiceTaskFlowElement__Group__1 : rule__ExternalServiceTaskFlowElement__Group__1__Impl rule__ExternalServiceTaskFlowElement__Group__2 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4353:1: ( rule__ExternalServiceTaskFlowElement__Group__1__Impl rule__ExternalServiceTaskFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:4354:2: rule__ExternalServiceTaskFlowElement__Group__1__Impl rule__ExternalServiceTaskFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__ExternalServiceTaskFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:4361:1: rule__ExternalServiceTaskFlowElement__Group__1__Impl : ( ( rule__ExternalServiceTaskFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4365:1: ( ( ( rule__ExternalServiceTaskFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:4366:1: ( ( rule__ExternalServiceTaskFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:4366:1: ( ( rule__ExternalServiceTaskFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:4367:2: ( rule__ExternalServiceTaskFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:4368:2: ( rule__ExternalServiceTaskFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:4368:3: rule__ExternalServiceTaskFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:4376:1: rule__ExternalServiceTaskFlowElement__Group__2 : rule__ExternalServiceTaskFlowElement__Group__2__Impl rule__ExternalServiceTaskFlowElement__Group__3 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4380:1: ( rule__ExternalServiceTaskFlowElement__Group__2__Impl rule__ExternalServiceTaskFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:4381:2: rule__ExternalServiceTaskFlowElement__Group__2__Impl rule__ExternalServiceTaskFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_26);
+            rule__ExternalServiceTaskFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:4388:1: rule__ExternalServiceTaskFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4392:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:4393:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:4393:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:4394:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:4403:1: rule__ExternalServiceTaskFlowElement__Group__3 : rule__ExternalServiceTaskFlowElement__Group__3__Impl rule__ExternalServiceTaskFlowElement__Group__4 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4407:1: ( rule__ExternalServiceTaskFlowElement__Group__3__Impl rule__ExternalServiceTaskFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:4408:2: rule__ExternalServiceTaskFlowElement__Group__3__Impl rule__ExternalServiceTaskFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_5);
+            rule__ExternalServiceTaskFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:4415:1: rule__ExternalServiceTaskFlowElement__Group__3__Impl : ( 'ServiceTask' ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4419:1: ( ( 'ServiceTask' ) )
+            // InternalTestgeneratorDSL.g:4420:1: ( 'ServiceTask' )
+            {
+            // InternalTestgeneratorDSL.g:4420:1: ( 'ServiceTask' )
+            // InternalTestgeneratorDSL.g:4421:2: 'ServiceTask'
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getServiceTaskKeyword_3()); 
+            match(input,38,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getServiceTaskKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:4430:1: rule__ExternalServiceTaskFlowElement__Group__4 : rule__ExternalServiceTaskFlowElement__Group__4__Impl rule__ExternalServiceTaskFlowElement__Group__5 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4434:1: ( rule__ExternalServiceTaskFlowElement__Group__4__Impl rule__ExternalServiceTaskFlowElement__Group__5 )
+            // InternalTestgeneratorDSL.g:4435:2: rule__ExternalServiceTaskFlowElement__Group__4__Impl rule__ExternalServiceTaskFlowElement__Group__5
+            {
+            pushFollow(FOLLOW_28);
+            rule__ExternalServiceTaskFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:4442:1: rule__ExternalServiceTaskFlowElement__Group__4__Impl : ( 'with' ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4446:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:4447:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:4447:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:4448:2: 'with'
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_4()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__5"
+    // InternalTestgeneratorDSL.g:4457:1: rule__ExternalServiceTaskFlowElement__Group__5 : rule__ExternalServiceTaskFlowElement__Group__5__Impl rule__ExternalServiceTaskFlowElement__Group__6 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4461:1: ( rule__ExternalServiceTaskFlowElement__Group__5__Impl rule__ExternalServiceTaskFlowElement__Group__6 )
+            // InternalTestgeneratorDSL.g:4462:2: rule__ExternalServiceTaskFlowElement__Group__5__Impl rule__ExternalServiceTaskFlowElement__Group__6
+            {
+            pushFollow(FOLLOW_12);
+            rule__ExternalServiceTaskFlowElement__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__5"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:4469:1: rule__ExternalServiceTaskFlowElement__Group__5__Impl : ( 'external' ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4473:1: ( ( 'external' ) )
+            // InternalTestgeneratorDSL.g:4474:1: ( 'external' )
+            {
+            // InternalTestgeneratorDSL.g:4474:1: ( 'external' )
+            // InternalTestgeneratorDSL.g:4475:2: 'external'
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalKeyword_5()); 
+            match(input,40,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__6"
+    // InternalTestgeneratorDSL.g:4484:1: rule__ExternalServiceTaskFlowElement__Group__6 : rule__ExternalServiceTaskFlowElement__Group__6__Impl rule__ExternalServiceTaskFlowElement__Group__7 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4488:1: ( rule__ExternalServiceTaskFlowElement__Group__6__Impl rule__ExternalServiceTaskFlowElement__Group__7 )
+            // InternalTestgeneratorDSL.g:4489:2: rule__ExternalServiceTaskFlowElement__Group__6__Impl rule__ExternalServiceTaskFlowElement__Group__7
+            {
+            pushFollow(FOLLOW_4);
+            rule__ExternalServiceTaskFlowElement__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__6"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:4496:1: rule__ExternalServiceTaskFlowElement__Group__6__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4500:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:4501:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:4501:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:4502:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__7"
+    // InternalTestgeneratorDSL.g:4511:1: rule__ExternalServiceTaskFlowElement__Group__7 : rule__ExternalServiceTaskFlowElement__Group__7__Impl rule__ExternalServiceTaskFlowElement__Group__8 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4515:1: ( rule__ExternalServiceTaskFlowElement__Group__7__Impl rule__ExternalServiceTaskFlowElement__Group__8 )
+            // InternalTestgeneratorDSL.g:4516:2: rule__ExternalServiceTaskFlowElement__Group__7__Impl rule__ExternalServiceTaskFlowElement__Group__8
+            {
+            pushFollow(FOLLOW_10);
+            rule__ExternalServiceTaskFlowElement__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__7"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:4523:1: rule__ExternalServiceTaskFlowElement__Group__7__Impl : ( ( rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7 ) ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4527:1: ( ( ( rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7 ) ) )
+            // InternalTestgeneratorDSL.g:4528:1: ( ( rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7 ) )
+            {
+            // InternalTestgeneratorDSL.g:4528:1: ( ( rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7 ) )
+            // InternalTestgeneratorDSL.g:4529:2: ( rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7 )
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicAssignment_7()); 
+            // InternalTestgeneratorDSL.g:4530:2: ( rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7 )
+            // InternalTestgeneratorDSL.g:4530:3: rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicAssignment_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__7__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__8"
+    // InternalTestgeneratorDSL.g:4538:1: rule__ExternalServiceTaskFlowElement__Group__8 : rule__ExternalServiceTaskFlowElement__Group__8__Impl rule__ExternalServiceTaskFlowElement__Group__9 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4542:1: ( rule__ExternalServiceTaskFlowElement__Group__8__Impl rule__ExternalServiceTaskFlowElement__Group__9 )
+            // InternalTestgeneratorDSL.g:4543:2: rule__ExternalServiceTaskFlowElement__Group__8__Impl rule__ExternalServiceTaskFlowElement__Group__9
+            {
+            pushFollow(FOLLOW_10);
+            rule__ExternalServiceTaskFlowElement__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__8"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:4550:1: rule__ExternalServiceTaskFlowElement__Group__8__Impl : ( ( rule__ExternalServiceTaskFlowElement__Group_8__0 )? ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4554:1: ( ( ( rule__ExternalServiceTaskFlowElement__Group_8__0 )? ) )
+            // InternalTestgeneratorDSL.g:4555:1: ( ( rule__ExternalServiceTaskFlowElement__Group_8__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:4555:1: ( ( rule__ExternalServiceTaskFlowElement__Group_8__0 )? )
+            // InternalTestgeneratorDSL.g:4556:2: ( rule__ExternalServiceTaskFlowElement__Group_8__0 )?
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8()); 
+            // InternalTestgeneratorDSL.g:4557:2: ( rule__ExternalServiceTaskFlowElement__Group_8__0 )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==25) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:4557:3: rule__ExternalServiceTaskFlowElement__Group_8__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ExternalServiceTaskFlowElement__Group_8__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__8__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__9"
+    // InternalTestgeneratorDSL.g:4565:1: rule__ExternalServiceTaskFlowElement__Group__9 : rule__ExternalServiceTaskFlowElement__Group__9__Impl ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4569:1: ( rule__ExternalServiceTaskFlowElement__Group__9__Impl )
+            // InternalTestgeneratorDSL.g:4570:2: rule__ExternalServiceTaskFlowElement__Group__9__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group__9__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__9"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group__9__Impl"
+    // InternalTestgeneratorDSL.g:4576:1: rule__ExternalServiceTaskFlowElement__Group__9__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4580:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:4581:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:4581:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:4582:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_9()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group__9__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__0"
+    // InternalTestgeneratorDSL.g:4592:1: rule__ExternalServiceTaskFlowElement__Group_8__0 : rule__ExternalServiceTaskFlowElement__Group_8__0__Impl rule__ExternalServiceTaskFlowElement__Group_8__1 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4596:1: ( rule__ExternalServiceTaskFlowElement__Group_8__0__Impl rule__ExternalServiceTaskFlowElement__Group_8__1 )
+            // InternalTestgeneratorDSL.g:4597:2: rule__ExternalServiceTaskFlowElement__Group_8__0__Impl rule__ExternalServiceTaskFlowElement__Group_8__1
+            {
+            pushFollow(FOLLOW_29);
+            rule__ExternalServiceTaskFlowElement__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__0"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__0__Impl"
+    // InternalTestgeneratorDSL.g:4604:1: rule__ExternalServiceTaskFlowElement__Group_8__0__Impl : ( 'with' ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4608:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:4609:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:4609:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:4610:2: 'with'
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_8_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__1"
+    // InternalTestgeneratorDSL.g:4619:1: rule__ExternalServiceTaskFlowElement__Group_8__1 : rule__ExternalServiceTaskFlowElement__Group_8__1__Impl rule__ExternalServiceTaskFlowElement__Group_8__2 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4623:1: ( rule__ExternalServiceTaskFlowElement__Group_8__1__Impl rule__ExternalServiceTaskFlowElement__Group_8__2 )
+            // InternalTestgeneratorDSL.g:4624:2: rule__ExternalServiceTaskFlowElement__Group_8__1__Impl rule__ExternalServiceTaskFlowElement__Group_8__2
+            {
+            pushFollow(FOLLOW_30);
+            rule__ExternalServiceTaskFlowElement__Group_8__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__1"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__1__Impl"
+    // InternalTestgeneratorDSL.g:4631:1: rule__ExternalServiceTaskFlowElement__Group_8__1__Impl : ( 'hardcoded' ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4635:1: ( ( 'hardcoded' ) )
+            // InternalTestgeneratorDSL.g:4636:1: ( 'hardcoded' )
+            {
+            // InternalTestgeneratorDSL.g:4636:1: ( 'hardcoded' )
+            // InternalTestgeneratorDSL.g:4637:2: 'hardcoded'
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedKeyword_8_1()); 
+            match(input,41,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedKeyword_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__2"
+    // InternalTestgeneratorDSL.g:4646:1: rule__ExternalServiceTaskFlowElement__Group_8__2 : rule__ExternalServiceTaskFlowElement__Group_8__2__Impl rule__ExternalServiceTaskFlowElement__Group_8__3 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4650:1: ( rule__ExternalServiceTaskFlowElement__Group_8__2__Impl rule__ExternalServiceTaskFlowElement__Group_8__3 )
+            // InternalTestgeneratorDSL.g:4651:2: rule__ExternalServiceTaskFlowElement__Group_8__2__Impl rule__ExternalServiceTaskFlowElement__Group_8__3
+            {
+            pushFollow(FOLLOW_12);
+            rule__ExternalServiceTaskFlowElement__Group_8__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__2"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__2__Impl"
+    // InternalTestgeneratorDSL.g:4658:1: rule__ExternalServiceTaskFlowElement__Group_8__2__Impl : ( 'inputs' ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4662:1: ( ( 'inputs' ) )
+            // InternalTestgeneratorDSL.g:4663:1: ( 'inputs' )
+            {
+            // InternalTestgeneratorDSL.g:4663:1: ( 'inputs' )
+            // InternalTestgeneratorDSL.g:4664:2: 'inputs'
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getInputsKeyword_8_2()); 
+            match(input,42,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getInputsKeyword_8_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__2__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__3"
+    // InternalTestgeneratorDSL.g:4673:1: rule__ExternalServiceTaskFlowElement__Group_8__3 : rule__ExternalServiceTaskFlowElement__Group_8__3__Impl rule__ExternalServiceTaskFlowElement__Group_8__4 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4677:1: ( rule__ExternalServiceTaskFlowElement__Group_8__3__Impl rule__ExternalServiceTaskFlowElement__Group_8__4 )
+            // InternalTestgeneratorDSL.g:4678:2: rule__ExternalServiceTaskFlowElement__Group_8__3__Impl rule__ExternalServiceTaskFlowElement__Group_8__4
+            {
+            pushFollow(FOLLOW_13);
+            rule__ExternalServiceTaskFlowElement__Group_8__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__3"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__3__Impl"
+    // InternalTestgeneratorDSL.g:4685:1: rule__ExternalServiceTaskFlowElement__Group_8__3__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4689:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:4690:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:4690:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:4691:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_8_3()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_8_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__3__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__4"
+    // InternalTestgeneratorDSL.g:4700:1: rule__ExternalServiceTaskFlowElement__Group_8__4 : rule__ExternalServiceTaskFlowElement__Group_8__4__Impl rule__ExternalServiceTaskFlowElement__Group_8__5 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4704:1: ( rule__ExternalServiceTaskFlowElement__Group_8__4__Impl rule__ExternalServiceTaskFlowElement__Group_8__5 )
+            // InternalTestgeneratorDSL.g:4705:2: rule__ExternalServiceTaskFlowElement__Group_8__4__Impl rule__ExternalServiceTaskFlowElement__Group_8__5
+            {
+            pushFollow(FOLLOW_20);
+            rule__ExternalServiceTaskFlowElement__Group_8__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__4"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__4__Impl"
+    // InternalTestgeneratorDSL.g:4712:1: rule__ExternalServiceTaskFlowElement__Group_8__4__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4716:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:4717:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:4717:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:4718:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_8_4()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_8_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__4__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__5"
+    // InternalTestgeneratorDSL.g:4727:1: rule__ExternalServiceTaskFlowElement__Group_8__5 : rule__ExternalServiceTaskFlowElement__Group_8__5__Impl rule__ExternalServiceTaskFlowElement__Group_8__6 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4731:1: ( rule__ExternalServiceTaskFlowElement__Group_8__5__Impl rule__ExternalServiceTaskFlowElement__Group_8__6 )
+            // InternalTestgeneratorDSL.g:4732:2: rule__ExternalServiceTaskFlowElement__Group_8__5__Impl rule__ExternalServiceTaskFlowElement__Group_8__6
+            {
+            pushFollow(FOLLOW_20);
+            rule__ExternalServiceTaskFlowElement__Group_8__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__5"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__5__Impl"
+    // InternalTestgeneratorDSL.g:4739:1: rule__ExternalServiceTaskFlowElement__Group_8__5__Impl : ( ( rule__ExternalServiceTaskFlowElement__Group_8_5__0 )? ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4743:1: ( ( ( rule__ExternalServiceTaskFlowElement__Group_8_5__0 )? ) )
+            // InternalTestgeneratorDSL.g:4744:1: ( ( rule__ExternalServiceTaskFlowElement__Group_8_5__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:4744:1: ( ( rule__ExternalServiceTaskFlowElement__Group_8_5__0 )? )
+            // InternalTestgeneratorDSL.g:4745:2: ( rule__ExternalServiceTaskFlowElement__Group_8_5__0 )?
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5()); 
+            // InternalTestgeneratorDSL.g:4746:2: ( rule__ExternalServiceTaskFlowElement__Group_8_5__0 )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0==RULE_ID) ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:4746:3: rule__ExternalServiceTaskFlowElement__Group_8_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ExternalServiceTaskFlowElement__Group_8_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__5__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__6"
+    // InternalTestgeneratorDSL.g:4754:1: rule__ExternalServiceTaskFlowElement__Group_8__6 : rule__ExternalServiceTaskFlowElement__Group_8__6__Impl ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4758:1: ( rule__ExternalServiceTaskFlowElement__Group_8__6__Impl )
+            // InternalTestgeneratorDSL.g:4759:2: rule__ExternalServiceTaskFlowElement__Group_8__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__6"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8__6__Impl"
+    // InternalTestgeneratorDSL.g:4765:1: rule__ExternalServiceTaskFlowElement__Group_8__6__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4769:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:4770:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:4770:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:4771:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_8_6()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_8_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8__6__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8_5__0"
+    // InternalTestgeneratorDSL.g:4781:1: rule__ExternalServiceTaskFlowElement__Group_8_5__0 : rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl rule__ExternalServiceTaskFlowElement__Group_8_5__1 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4785:1: ( rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl rule__ExternalServiceTaskFlowElement__Group_8_5__1 )
+            // InternalTestgeneratorDSL.g:4786:2: rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl rule__ExternalServiceTaskFlowElement__Group_8_5__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8_5__0"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl"
+    // InternalTestgeneratorDSL.g:4793:1: rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl : ( ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0 ) ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4797:1: ( ( ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0 ) ) )
+            // InternalTestgeneratorDSL.g:4798:1: ( ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:4798:1: ( ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0 ) )
+            // InternalTestgeneratorDSL.g:4799:2: ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0 )
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_0()); 
+            // InternalTestgeneratorDSL.g:4800:2: ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0 )
+            // InternalTestgeneratorDSL.g:4800:3: rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8_5__0__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8_5__1"
+    // InternalTestgeneratorDSL.g:4808:1: rule__ExternalServiceTaskFlowElement__Group_8_5__1 : rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4812:1: ( rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl )
+            // InternalTestgeneratorDSL.g:4813:2: rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8_5__1"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl"
+    // InternalTestgeneratorDSL.g:4819:1: rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl : ( ( rule__ExternalServiceTaskFlowElement__Group_8_5_1__0 )* ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4823:1: ( ( ( rule__ExternalServiceTaskFlowElement__Group_8_5_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:4824:1: ( ( rule__ExternalServiceTaskFlowElement__Group_8_5_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:4824:1: ( ( rule__ExternalServiceTaskFlowElement__Group_8_5_1__0 )* )
+            // InternalTestgeneratorDSL.g:4825:2: ( rule__ExternalServiceTaskFlowElement__Group_8_5_1__0 )*
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5_1()); 
+            // InternalTestgeneratorDSL.g:4826:2: ( rule__ExternalServiceTaskFlowElement__Group_8_5_1__0 )*
+            loop30:
+            do {
+                int alt30=2;
+                int LA30_0 = input.LA(1);
+
+                if ( (LA30_0==RULE_SEPARATOR) ) {
+                    alt30=1;
+                }
+
+
+                switch (alt30) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:4826:3: rule__ExternalServiceTaskFlowElement__Group_8_5_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__ExternalServiceTaskFlowElement__Group_8_5_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop30;
+                }
+            } while (true);
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getGroup_8_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8_5__1__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8_5_1__0"
+    // InternalTestgeneratorDSL.g:4835:1: rule__ExternalServiceTaskFlowElement__Group_8_5_1__0 : rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl rule__ExternalServiceTaskFlowElement__Group_8_5_1__1 ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8_5_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4839:1: ( rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl rule__ExternalServiceTaskFlowElement__Group_8_5_1__1 )
+            // InternalTestgeneratorDSL.g:4840:2: rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl rule__ExternalServiceTaskFlowElement__Group_8_5_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8_5_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8_5_1__0"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl"
+    // InternalTestgeneratorDSL.g:4847:1: rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4851:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:4852:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:4852:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:4853:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getSEPARATORTerminalRuleCall_8_5_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getSEPARATORTerminalRuleCall_8_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8_5_1__0__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8_5_1__1"
+    // InternalTestgeneratorDSL.g:4862:1: rule__ExternalServiceTaskFlowElement__Group_8_5_1__1 : rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8_5_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4866:1: ( rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl )
+            // InternalTestgeneratorDSL.g:4867:2: rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8_5_1__1"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl"
+    // InternalTestgeneratorDSL.g:4873:1: rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl : ( ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1 ) ) ;
+    public final void rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4877:1: ( ( ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:4878:1: ( ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:4878:1: ( ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1 ) )
+            // InternalTestgeneratorDSL.g:4879:2: ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1 )
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_1_1()); 
+            // InternalTestgeneratorDSL.g:4880:2: ( rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1 )
+            // InternalTestgeneratorDSL.g:4880:3: rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsAssignment_8_5_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__Group_8_5_1__1__Impl"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:4889:1: rule__BusinessRuleTaskFlowElement__Group__0 : rule__BusinessRuleTaskFlowElement__Group__0__Impl rule__BusinessRuleTaskFlowElement__Group__1 ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4893:1: ( rule__BusinessRuleTaskFlowElement__Group__0__Impl rule__BusinessRuleTaskFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:4894:2: rule__BusinessRuleTaskFlowElement__Group__0__Impl rule__BusinessRuleTaskFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__BusinessRuleTaskFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BusinessRuleTaskFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:4901:1: rule__BusinessRuleTaskFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4905:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:4906:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:4906:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:4907:2: 'FlowElement'
+            {
+             before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:4916:1: rule__BusinessRuleTaskFlowElement__Group__1 : rule__BusinessRuleTaskFlowElement__Group__1__Impl rule__BusinessRuleTaskFlowElement__Group__2 ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4920:1: ( rule__BusinessRuleTaskFlowElement__Group__1__Impl rule__BusinessRuleTaskFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:4921:2: rule__BusinessRuleTaskFlowElement__Group__1__Impl rule__BusinessRuleTaskFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__BusinessRuleTaskFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BusinessRuleTaskFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:4928:1: rule__BusinessRuleTaskFlowElement__Group__1__Impl : ( ( rule__BusinessRuleTaskFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4932:1: ( ( ( rule__BusinessRuleTaskFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:4933:1: ( ( rule__BusinessRuleTaskFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:4933:1: ( ( rule__BusinessRuleTaskFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:4934:2: ( rule__BusinessRuleTaskFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:4935:2: ( rule__BusinessRuleTaskFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:4935:3: rule__BusinessRuleTaskFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__BusinessRuleTaskFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:4943:1: rule__BusinessRuleTaskFlowElement__Group__2 : rule__BusinessRuleTaskFlowElement__Group__2__Impl rule__BusinessRuleTaskFlowElement__Group__3 ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4947:1: ( rule__BusinessRuleTaskFlowElement__Group__2__Impl rule__BusinessRuleTaskFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:4948:2: rule__BusinessRuleTaskFlowElement__Group__2__Impl rule__BusinessRuleTaskFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_31);
+            rule__BusinessRuleTaskFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BusinessRuleTaskFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:4955:1: rule__BusinessRuleTaskFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4959:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:4960:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:4960:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:4961:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:4970:1: rule__BusinessRuleTaskFlowElement__Group__3 : rule__BusinessRuleTaskFlowElement__Group__3__Impl rule__BusinessRuleTaskFlowElement__Group__4 ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4974:1: ( rule__BusinessRuleTaskFlowElement__Group__3__Impl rule__BusinessRuleTaskFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:4975:2: rule__BusinessRuleTaskFlowElement__Group__3__Impl rule__BusinessRuleTaskFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_22);
+            rule__BusinessRuleTaskFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BusinessRuleTaskFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:4982:1: rule__BusinessRuleTaskFlowElement__Group__3__Impl : ( 'BusinessRuleTask' ) ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:4986:1: ( ( 'BusinessRuleTask' ) )
+            // InternalTestgeneratorDSL.g:4987:1: ( 'BusinessRuleTask' )
+            {
+            // InternalTestgeneratorDSL.g:4987:1: ( 'BusinessRuleTask' )
+            // InternalTestgeneratorDSL.g:4988:2: 'BusinessRuleTask'
+            {
+             before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getBusinessRuleTaskKeyword_3()); 
+            match(input,43,FOLLOW_2); 
+             after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getBusinessRuleTaskKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:4997:1: rule__BusinessRuleTaskFlowElement__Group__4 : rule__BusinessRuleTaskFlowElement__Group__4__Impl ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5001:1: ( rule__BusinessRuleTaskFlowElement__Group__4__Impl )
+            // InternalTestgeneratorDSL.g:5002:2: rule__BusinessRuleTaskFlowElement__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BusinessRuleTaskFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:5008:1: rule__BusinessRuleTaskFlowElement__Group__4__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__BusinessRuleTaskFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5012:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:5013:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:5013:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:5014:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:5024:1: rule__GatewayFlowElement__Group__0 : rule__GatewayFlowElement__Group__0__Impl rule__GatewayFlowElement__Group__1 ;
+    public final void rule__GatewayFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5028:1: ( rule__GatewayFlowElement__Group__0__Impl rule__GatewayFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:5029:2: rule__GatewayFlowElement__Group__0__Impl rule__GatewayFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__GatewayFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__GatewayFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:5036:1: rule__GatewayFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__GatewayFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5040:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:5041:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:5041:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:5042:2: 'FlowElement'
+            {
+             before(grammarAccess.getGatewayFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getGatewayFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:5051:1: rule__GatewayFlowElement__Group__1 : rule__GatewayFlowElement__Group__1__Impl rule__GatewayFlowElement__Group__2 ;
+    public final void rule__GatewayFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5055:1: ( rule__GatewayFlowElement__Group__1__Impl rule__GatewayFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:5056:2: rule__GatewayFlowElement__Group__1__Impl rule__GatewayFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__GatewayFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__GatewayFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:5063:1: rule__GatewayFlowElement__Group__1__Impl : ( ( rule__GatewayFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__GatewayFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5067:1: ( ( ( rule__GatewayFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:5068:1: ( ( rule__GatewayFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:5068:1: ( ( rule__GatewayFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:5069:2: ( rule__GatewayFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getGatewayFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:5070:2: ( rule__GatewayFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:5070:3: rule__GatewayFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__GatewayFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getGatewayFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:5078:1: rule__GatewayFlowElement__Group__2 : rule__GatewayFlowElement__Group__2__Impl rule__GatewayFlowElement__Group__3 ;
+    public final void rule__GatewayFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5082:1: ( rule__GatewayFlowElement__Group__2__Impl rule__GatewayFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:5083:2: rule__GatewayFlowElement__Group__2__Impl rule__GatewayFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_32);
+            rule__GatewayFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__GatewayFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:5090:1: rule__GatewayFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__GatewayFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5094:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:5095:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:5095:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:5096:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getGatewayFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getGatewayFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:5105:1: rule__GatewayFlowElement__Group__3 : rule__GatewayFlowElement__Group__3__Impl rule__GatewayFlowElement__Group__4 ;
+    public final void rule__GatewayFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5109:1: ( rule__GatewayFlowElement__Group__3__Impl rule__GatewayFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:5110:2: rule__GatewayFlowElement__Group__3__Impl rule__GatewayFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_22);
+            rule__GatewayFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__GatewayFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:5117:1: rule__GatewayFlowElement__Group__3__Impl : ( 'Gateway' ) ;
+    public final void rule__GatewayFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5121:1: ( ( 'Gateway' ) )
+            // InternalTestgeneratorDSL.g:5122:1: ( 'Gateway' )
+            {
+            // InternalTestgeneratorDSL.g:5122:1: ( 'Gateway' )
+            // InternalTestgeneratorDSL.g:5123:2: 'Gateway'
+            {
+             before(grammarAccess.getGatewayFlowElementAccess().getGatewayKeyword_3()); 
+            match(input,44,FOLLOW_2); 
+             after(grammarAccess.getGatewayFlowElementAccess().getGatewayKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:5132:1: rule__GatewayFlowElement__Group__4 : rule__GatewayFlowElement__Group__4__Impl ;
+    public final void rule__GatewayFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5136:1: ( rule__GatewayFlowElement__Group__4__Impl )
+            // InternalTestgeneratorDSL.g:5137:2: rule__GatewayFlowElement__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__GatewayFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:5143:1: rule__GatewayFlowElement__Group__4__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__GatewayFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5147:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:5148:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:5148:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:5149:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getGatewayFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getGatewayFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__0"
+    // InternalTestgeneratorDSL.g:5159:1: rule__SequenceFlowElement__Group__0 : rule__SequenceFlowElement__Group__0__Impl rule__SequenceFlowElement__Group__1 ;
+    public final void rule__SequenceFlowElement__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5163:1: ( rule__SequenceFlowElement__Group__0__Impl rule__SequenceFlowElement__Group__1 )
+            // InternalTestgeneratorDSL.g:5164:2: rule__SequenceFlowElement__Group__0__Impl rule__SequenceFlowElement__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__SequenceFlowElement__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__0"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:5171:1: rule__SequenceFlowElement__Group__0__Impl : ( 'FlowElement' ) ;
+    public final void rule__SequenceFlowElement__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5175:1: ( ( 'FlowElement' ) )
+            // InternalTestgeneratorDSL.g:5176:1: ( 'FlowElement' )
+            {
+            // InternalTestgeneratorDSL.g:5176:1: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:5177:2: 'FlowElement'
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getFlowElementKeyword_0()); 
+            match(input,31,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getFlowElementKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__0__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__1"
+    // InternalTestgeneratorDSL.g:5186:1: rule__SequenceFlowElement__Group__1 : rule__SequenceFlowElement__Group__1__Impl rule__SequenceFlowElement__Group__2 ;
+    public final void rule__SequenceFlowElement__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5190:1: ( rule__SequenceFlowElement__Group__1__Impl rule__SequenceFlowElement__Group__2 )
+            // InternalTestgeneratorDSL.g:5191:2: rule__SequenceFlowElement__Group__1__Impl rule__SequenceFlowElement__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__SequenceFlowElement__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__1"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:5198:1: rule__SequenceFlowElement__Group__1__Impl : ( ( rule__SequenceFlowElement__NameAssignment_1 ) ) ;
+    public final void rule__SequenceFlowElement__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5202:1: ( ( ( rule__SequenceFlowElement__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:5203:1: ( ( rule__SequenceFlowElement__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:5203:1: ( ( rule__SequenceFlowElement__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:5204:2: ( rule__SequenceFlowElement__NameAssignment_1 )
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:5205:2: ( rule__SequenceFlowElement__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:5205:3: rule__SequenceFlowElement__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSequenceFlowElementAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__1__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__2"
+    // InternalTestgeneratorDSL.g:5213:1: rule__SequenceFlowElement__Group__2 : rule__SequenceFlowElement__Group__2__Impl rule__SequenceFlowElement__Group__3 ;
+    public final void rule__SequenceFlowElement__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5217:1: ( rule__SequenceFlowElement__Group__2__Impl rule__SequenceFlowElement__Group__3 )
+            // InternalTestgeneratorDSL.g:5218:2: rule__SequenceFlowElement__Group__2__Impl rule__SequenceFlowElement__Group__3
+            {
+            pushFollow(FOLLOW_33);
+            rule__SequenceFlowElement__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__2"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:5225:1: rule__SequenceFlowElement__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__SequenceFlowElement__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5229:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:5230:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:5230:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:5231:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__2__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__3"
+    // InternalTestgeneratorDSL.g:5240:1: rule__SequenceFlowElement__Group__3 : rule__SequenceFlowElement__Group__3__Impl rule__SequenceFlowElement__Group__4 ;
+    public final void rule__SequenceFlowElement__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5244:1: ( rule__SequenceFlowElement__Group__3__Impl rule__SequenceFlowElement__Group__4 )
+            // InternalTestgeneratorDSL.g:5245:2: rule__SequenceFlowElement__Group__3__Impl rule__SequenceFlowElement__Group__4
+            {
+            pushFollow(FOLLOW_10);
+            rule__SequenceFlowElement__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__3"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:5252:1: rule__SequenceFlowElement__Group__3__Impl : ( 'SequenceFlow' ) ;
+    public final void rule__SequenceFlowElement__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5256:1: ( ( 'SequenceFlow' ) )
+            // InternalTestgeneratorDSL.g:5257:1: ( 'SequenceFlow' )
+            {
+            // InternalTestgeneratorDSL.g:5257:1: ( 'SequenceFlow' )
+            // InternalTestgeneratorDSL.g:5258:2: 'SequenceFlow'
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getSequenceFlowKeyword_3()); 
+            match(input,45,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getSequenceFlowKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__3__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__4"
+    // InternalTestgeneratorDSL.g:5267:1: rule__SequenceFlowElement__Group__4 : rule__SequenceFlowElement__Group__4__Impl rule__SequenceFlowElement__Group__5 ;
+    public final void rule__SequenceFlowElement__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5271:1: ( rule__SequenceFlowElement__Group__4__Impl rule__SequenceFlowElement__Group__5 )
+            // InternalTestgeneratorDSL.g:5272:2: rule__SequenceFlowElement__Group__4__Impl rule__SequenceFlowElement__Group__5
+            {
+            pushFollow(FOLLOW_10);
+            rule__SequenceFlowElement__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__4"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:5279:1: rule__SequenceFlowElement__Group__4__Impl : ( ( rule__SequenceFlowElement__Group_4__0 )? ) ;
+    public final void rule__SequenceFlowElement__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5283:1: ( ( ( rule__SequenceFlowElement__Group_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:5284:1: ( ( rule__SequenceFlowElement__Group_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:5284:1: ( ( rule__SequenceFlowElement__Group_4__0 )? )
+            // InternalTestgeneratorDSL.g:5285:2: ( rule__SequenceFlowElement__Group_4__0 )?
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getGroup_4()); 
+            // InternalTestgeneratorDSL.g:5286:2: ( rule__SequenceFlowElement__Group_4__0 )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==25) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:5286:3: rule__SequenceFlowElement__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__SequenceFlowElement__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getSequenceFlowElementAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__4__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__5"
+    // InternalTestgeneratorDSL.g:5294:1: rule__SequenceFlowElement__Group__5 : rule__SequenceFlowElement__Group__5__Impl ;
+    public final void rule__SequenceFlowElement__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5298:1: ( rule__SequenceFlowElement__Group__5__Impl )
+            // InternalTestgeneratorDSL.g:5299:2: rule__SequenceFlowElement__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__5"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:5305:1: rule__SequenceFlowElement__Group__5__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__SequenceFlowElement__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5309:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:5310:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:5310:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:5311:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group__5__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group_4__0"
+    // InternalTestgeneratorDSL.g:5321:1: rule__SequenceFlowElement__Group_4__0 : rule__SequenceFlowElement__Group_4__0__Impl rule__SequenceFlowElement__Group_4__1 ;
+    public final void rule__SequenceFlowElement__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5325:1: ( rule__SequenceFlowElement__Group_4__0__Impl rule__SequenceFlowElement__Group_4__1 )
+            // InternalTestgeneratorDSL.g:5326:2: rule__SequenceFlowElement__Group_4__0__Impl rule__SequenceFlowElement__Group_4__1
+            {
+            pushFollow(FOLLOW_34);
+            rule__SequenceFlowElement__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group_4__0"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group_4__0__Impl"
+    // InternalTestgeneratorDSL.g:5333:1: rule__SequenceFlowElement__Group_4__0__Impl : ( 'with' ) ;
+    public final void rule__SequenceFlowElement__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5337:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:5338:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:5338:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:5339:2: 'with'
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getWithKeyword_4_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getWithKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group_4__1"
+    // InternalTestgeneratorDSL.g:5348:1: rule__SequenceFlowElement__Group_4__1 : rule__SequenceFlowElement__Group_4__1__Impl rule__SequenceFlowElement__Group_4__2 ;
+    public final void rule__SequenceFlowElement__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5352:1: ( rule__SequenceFlowElement__Group_4__1__Impl rule__SequenceFlowElement__Group_4__2 )
+            // InternalTestgeneratorDSL.g:5353:2: rule__SequenceFlowElement__Group_4__1__Impl rule__SequenceFlowElement__Group_4__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__SequenceFlowElement__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group_4__1"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group_4__1__Impl"
+    // InternalTestgeneratorDSL.g:5360:1: rule__SequenceFlowElement__Group_4__1__Impl : ( 'expression' ) ;
+    public final void rule__SequenceFlowElement__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5364:1: ( ( 'expression' ) )
+            // InternalTestgeneratorDSL.g:5365:1: ( 'expression' )
+            {
+            // InternalTestgeneratorDSL.g:5365:1: ( 'expression' )
+            // InternalTestgeneratorDSL.g:5366:2: 'expression'
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getExpressionKeyword_4_1()); 
+            match(input,46,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getExpressionKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group_4__2"
+    // InternalTestgeneratorDSL.g:5375:1: rule__SequenceFlowElement__Group_4__2 : rule__SequenceFlowElement__Group_4__2__Impl rule__SequenceFlowElement__Group_4__3 ;
+    public final void rule__SequenceFlowElement__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5379:1: ( rule__SequenceFlowElement__Group_4__2__Impl rule__SequenceFlowElement__Group_4__3 )
+            // InternalTestgeneratorDSL.g:5380:2: rule__SequenceFlowElement__Group_4__2__Impl rule__SequenceFlowElement__Group_4__3
+            {
+            pushFollow(FOLLOW_7);
+            rule__SequenceFlowElement__Group_4__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group_4__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group_4__2"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group_4__2__Impl"
+    // InternalTestgeneratorDSL.g:5387:1: rule__SequenceFlowElement__Group_4__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__SequenceFlowElement__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5391:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:5392:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:5392:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:5393:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group_4__3"
+    // InternalTestgeneratorDSL.g:5402:1: rule__SequenceFlowElement__Group_4__3 : rule__SequenceFlowElement__Group_4__3__Impl ;
+    public final void rule__SequenceFlowElement__Group_4__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5406:1: ( rule__SequenceFlowElement__Group_4__3__Impl )
+            // InternalTestgeneratorDSL.g:5407:2: rule__SequenceFlowElement__Group_4__3__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__Group_4__3__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group_4__3"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__Group_4__3__Impl"
+    // InternalTestgeneratorDSL.g:5413:1: rule__SequenceFlowElement__Group_4__3__Impl : ( ( rule__SequenceFlowElement__ExpressionAssignment_4_3 ) ) ;
+    public final void rule__SequenceFlowElement__Group_4__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5417:1: ( ( ( rule__SequenceFlowElement__ExpressionAssignment_4_3 ) ) )
+            // InternalTestgeneratorDSL.g:5418:1: ( ( rule__SequenceFlowElement__ExpressionAssignment_4_3 ) )
+            {
+            // InternalTestgeneratorDSL.g:5418:1: ( ( rule__SequenceFlowElement__ExpressionAssignment_4_3 ) )
+            // InternalTestgeneratorDSL.g:5419:2: ( rule__SequenceFlowElement__ExpressionAssignment_4_3 )
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getExpressionAssignment_4_3()); 
+            // InternalTestgeneratorDSL.g:5420:2: ( rule__SequenceFlowElement__ExpressionAssignment_4_3 )
+            // InternalTestgeneratorDSL.g:5420:3: rule__SequenceFlowElement__ExpressionAssignment_4_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__SequenceFlowElement__ExpressionAssignment_4_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getSequenceFlowElementAccess().getExpressionAssignment_4_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__Group_4__3__Impl"
+
+
+    // $ANTLR start "rule__ExternalTopic__Group__0"
+    // InternalTestgeneratorDSL.g:5429:1: rule__ExternalTopic__Group__0 : rule__ExternalTopic__Group__0__Impl rule__ExternalTopic__Group__1 ;
+    public final void rule__ExternalTopic__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5433:1: ( rule__ExternalTopic__Group__0__Impl rule__ExternalTopic__Group__1 )
+            // InternalTestgeneratorDSL.g:5434:2: rule__ExternalTopic__Group__0__Impl rule__ExternalTopic__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__ExternalTopic__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalTopic__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalTopic__Group__0"
+
+
+    // $ANTLR start "rule__ExternalTopic__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:5441:1: rule__ExternalTopic__Group__0__Impl : ( 'ExternalTopic' ) ;
+    public final void rule__ExternalTopic__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5445:1: ( ( 'ExternalTopic' ) )
+            // InternalTestgeneratorDSL.g:5446:1: ( 'ExternalTopic' )
+            {
+            // InternalTestgeneratorDSL.g:5446:1: ( 'ExternalTopic' )
+            // InternalTestgeneratorDSL.g:5447:2: 'ExternalTopic'
+            {
+             before(grammarAccess.getExternalTopicAccess().getExternalTopicKeyword_0()); 
+            match(input,47,FOLLOW_2); 
+             after(grammarAccess.getExternalTopicAccess().getExternalTopicKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalTopic__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ExternalTopic__Group__1"
+    // InternalTestgeneratorDSL.g:5456:1: rule__ExternalTopic__Group__1 : rule__ExternalTopic__Group__1__Impl rule__ExternalTopic__Group__2 ;
+    public final void rule__ExternalTopic__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5460:1: ( rule__ExternalTopic__Group__1__Impl rule__ExternalTopic__Group__2 )
+            // InternalTestgeneratorDSL.g:5461:2: rule__ExternalTopic__Group__1__Impl rule__ExternalTopic__Group__2
+            {
+            pushFollow(FOLLOW_22);
+            rule__ExternalTopic__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalTopic__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalTopic__Group__1"
+
+
+    // $ANTLR start "rule__ExternalTopic__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:5468:1: rule__ExternalTopic__Group__1__Impl : ( ( rule__ExternalTopic__NameAssignment_1 ) ) ;
+    public final void rule__ExternalTopic__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5472:1: ( ( ( rule__ExternalTopic__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:5473:1: ( ( rule__ExternalTopic__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:5473:1: ( ( rule__ExternalTopic__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:5474:2: ( rule__ExternalTopic__NameAssignment_1 )
+            {
+             before(grammarAccess.getExternalTopicAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:5475:2: ( rule__ExternalTopic__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:5475:3: rule__ExternalTopic__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalTopic__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalTopicAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalTopic__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ExternalTopic__Group__2"
+    // InternalTestgeneratorDSL.g:5483:1: rule__ExternalTopic__Group__2 : rule__ExternalTopic__Group__2__Impl ;
+    public final void rule__ExternalTopic__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5487:1: ( rule__ExternalTopic__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:5488:2: rule__ExternalTopic__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalTopic__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalTopic__Group__2"
+
+
+    // $ANTLR start "rule__ExternalTopic__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:5494:1: rule__ExternalTopic__Group__2__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__ExternalTopic__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5498:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:5499:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:5499:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:5500:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getExternalTopicAccess().getDECLARATION_FINISHEDTerminalRuleCall_2()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getExternalTopicAccess().getDECLARATION_FINISHEDTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalTopic__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__0"
+    // InternalTestgeneratorDSL.g:5510:1: rule__StringVariable__Group__0 : rule__StringVariable__Group__0__Impl rule__StringVariable__Group__1 ;
+    public final void rule__StringVariable__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5514:1: ( rule__StringVariable__Group__0__Impl rule__StringVariable__Group__1 )
+            // InternalTestgeneratorDSL.g:5515:2: rule__StringVariable__Group__0__Impl rule__StringVariable__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__StringVariable__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__0"
+
+
+    // $ANTLR start "rule__StringVariable__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:5522:1: rule__StringVariable__Group__0__Impl : ( 'String' ) ;
+    public final void rule__StringVariable__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5526:1: ( ( 'String' ) )
+            // InternalTestgeneratorDSL.g:5527:1: ( 'String' )
+            {
+            // InternalTestgeneratorDSL.g:5527:1: ( 'String' )
+            // InternalTestgeneratorDSL.g:5528:2: 'String'
+            {
+             before(grammarAccess.getStringVariableAccess().getStringKeyword_0()); 
+            match(input,48,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getStringKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__1"
+    // InternalTestgeneratorDSL.g:5537:1: rule__StringVariable__Group__1 : rule__StringVariable__Group__1__Impl rule__StringVariable__Group__2 ;
+    public final void rule__StringVariable__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5541:1: ( rule__StringVariable__Group__1__Impl rule__StringVariable__Group__2 )
+            // InternalTestgeneratorDSL.g:5542:2: rule__StringVariable__Group__1__Impl rule__StringVariable__Group__2
+            {
+            pushFollow(FOLLOW_5);
+            rule__StringVariable__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__1"
+
+
+    // $ANTLR start "rule__StringVariable__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:5549:1: rule__StringVariable__Group__1__Impl : ( ( rule__StringVariable__NameAssignment_1 ) ) ;
+    public final void rule__StringVariable__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5553:1: ( ( ( rule__StringVariable__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:5554:1: ( ( rule__StringVariable__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:5554:1: ( ( rule__StringVariable__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:5555:2: ( rule__StringVariable__NameAssignment_1 )
+            {
+             before(grammarAccess.getStringVariableAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:5556:2: ( rule__StringVariable__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:5556:3: rule__StringVariable__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__2"
+    // InternalTestgeneratorDSL.g:5564:1: rule__StringVariable__Group__2 : rule__StringVariable__Group__2__Impl rule__StringVariable__Group__3 ;
+    public final void rule__StringVariable__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5568:1: ( rule__StringVariable__Group__2__Impl rule__StringVariable__Group__3 )
+            // InternalTestgeneratorDSL.g:5569:2: rule__StringVariable__Group__2__Impl rule__StringVariable__Group__3
+            {
+            pushFollow(FOLLOW_35);
+            rule__StringVariable__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__2"
+
+
+    // $ANTLR start "rule__StringVariable__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:5576:1: rule__StringVariable__Group__2__Impl : ( 'with' ) ;
+    public final void rule__StringVariable__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5580:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:5581:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:5581:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:5582:2: 'with'
+            {
+             before(grammarAccess.getStringVariableAccess().getWithKeyword_2()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getWithKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__3"
+    // InternalTestgeneratorDSL.g:5591:1: rule__StringVariable__Group__3 : rule__StringVariable__Group__3__Impl rule__StringVariable__Group__4 ;
+    public final void rule__StringVariable__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5595:1: ( rule__StringVariable__Group__3__Impl rule__StringVariable__Group__4 )
+            // InternalTestgeneratorDSL.g:5596:2: rule__StringVariable__Group__3__Impl rule__StringVariable__Group__4
+            {
+            pushFollow(FOLLOW_12);
+            rule__StringVariable__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__3"
+
+
+    // $ANTLR start "rule__StringVariable__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:5603:1: rule__StringVariable__Group__3__Impl : ( 'proposals' ) ;
+    public final void rule__StringVariable__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5607:1: ( ( 'proposals' ) )
+            // InternalTestgeneratorDSL.g:5608:1: ( 'proposals' )
+            {
+            // InternalTestgeneratorDSL.g:5608:1: ( 'proposals' )
+            // InternalTestgeneratorDSL.g:5609:2: 'proposals'
+            {
+             before(grammarAccess.getStringVariableAccess().getProposalsKeyword_3()); 
+            match(input,49,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getProposalsKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__3__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__4"
+    // InternalTestgeneratorDSL.g:5618:1: rule__StringVariable__Group__4 : rule__StringVariable__Group__4__Impl rule__StringVariable__Group__5 ;
+    public final void rule__StringVariable__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5622:1: ( rule__StringVariable__Group__4__Impl rule__StringVariable__Group__5 )
+            // InternalTestgeneratorDSL.g:5623:2: rule__StringVariable__Group__4__Impl rule__StringVariable__Group__5
+            {
+            pushFollow(FOLLOW_13);
+            rule__StringVariable__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__4"
+
+
+    // $ANTLR start "rule__StringVariable__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:5630:1: rule__StringVariable__Group__4__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__StringVariable__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5634:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:5635:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:5635:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:5636:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getStringVariableAccess().getASSOCIATIONTerminalRuleCall_4()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getASSOCIATIONTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__4__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__5"
+    // InternalTestgeneratorDSL.g:5645:1: rule__StringVariable__Group__5 : rule__StringVariable__Group__5__Impl rule__StringVariable__Group__6 ;
+    public final void rule__StringVariable__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5649:1: ( rule__StringVariable__Group__5__Impl rule__StringVariable__Group__6 )
+            // InternalTestgeneratorDSL.g:5650:2: rule__StringVariable__Group__5__Impl rule__StringVariable__Group__6
+            {
+            pushFollow(FOLLOW_14);
+            rule__StringVariable__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__5"
+
+
+    // $ANTLR start "rule__StringVariable__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:5657:1: rule__StringVariable__Group__5__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__StringVariable__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5661:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:5662:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:5662:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:5663:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getStringVariableAccess().getLIST_OPENTerminalRuleCall_5()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getLIST_OPENTerminalRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__5__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__6"
+    // InternalTestgeneratorDSL.g:5672:1: rule__StringVariable__Group__6 : rule__StringVariable__Group__6__Impl rule__StringVariable__Group__7 ;
+    public final void rule__StringVariable__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5676:1: ( rule__StringVariable__Group__6__Impl rule__StringVariable__Group__7 )
+            // InternalTestgeneratorDSL.g:5677:2: rule__StringVariable__Group__6__Impl rule__StringVariable__Group__7
+            {
+            pushFollow(FOLLOW_14);
+            rule__StringVariable__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__6"
+
+
+    // $ANTLR start "rule__StringVariable__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:5684:1: rule__StringVariable__Group__6__Impl : ( ( rule__StringVariable__Group_6__0 )? ) ;
+    public final void rule__StringVariable__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5688:1: ( ( ( rule__StringVariable__Group_6__0 )? ) )
+            // InternalTestgeneratorDSL.g:5689:1: ( ( rule__StringVariable__Group_6__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:5689:1: ( ( rule__StringVariable__Group_6__0 )? )
+            // InternalTestgeneratorDSL.g:5690:2: ( rule__StringVariable__Group_6__0 )?
+            {
+             before(grammarAccess.getStringVariableAccess().getGroup_6()); 
+            // InternalTestgeneratorDSL.g:5691:2: ( rule__StringVariable__Group_6__0 )?
+            int alt32=2;
+            int LA32_0 = input.LA(1);
+
+            if ( (LA32_0==RULE_STRING) ) {
+                alt32=1;
+            }
+            switch (alt32) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:5691:3: rule__StringVariable__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__StringVariable__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getStringVariableAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__6__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__7"
+    // InternalTestgeneratorDSL.g:5699:1: rule__StringVariable__Group__7 : rule__StringVariable__Group__7__Impl rule__StringVariable__Group__8 ;
+    public final void rule__StringVariable__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5703:1: ( rule__StringVariable__Group__7__Impl rule__StringVariable__Group__8 )
+            // InternalTestgeneratorDSL.g:5704:2: rule__StringVariable__Group__7__Impl rule__StringVariable__Group__8
+            {
+            pushFollow(FOLLOW_22);
+            rule__StringVariable__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__7"
+
+
+    // $ANTLR start "rule__StringVariable__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:5711:1: rule__StringVariable__Group__7__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__StringVariable__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5715:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:5716:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:5716:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:5717:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getStringVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__7__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group__8"
+    // InternalTestgeneratorDSL.g:5726:1: rule__StringVariable__Group__8 : rule__StringVariable__Group__8__Impl ;
+    public final void rule__StringVariable__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5730:1: ( rule__StringVariable__Group__8__Impl )
+            // InternalTestgeneratorDSL.g:5731:2: rule__StringVariable__Group__8__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__8"
+
+
+    // $ANTLR start "rule__StringVariable__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:5737:1: rule__StringVariable__Group__8__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__StringVariable__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5741:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:5742:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:5742:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:5743:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getStringVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group__8__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group_6__0"
+    // InternalTestgeneratorDSL.g:5753:1: rule__StringVariable__Group_6__0 : rule__StringVariable__Group_6__0__Impl rule__StringVariable__Group_6__1 ;
+    public final void rule__StringVariable__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5757:1: ( rule__StringVariable__Group_6__0__Impl rule__StringVariable__Group_6__1 )
+            // InternalTestgeneratorDSL.g:5758:2: rule__StringVariable__Group_6__0__Impl rule__StringVariable__Group_6__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__StringVariable__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group_6__0"
+
+
+    // $ANTLR start "rule__StringVariable__Group_6__0__Impl"
+    // InternalTestgeneratorDSL.g:5765:1: rule__StringVariable__Group_6__0__Impl : ( ( rule__StringVariable__ProposalsAssignment_6_0 ) ) ;
+    public final void rule__StringVariable__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5769:1: ( ( ( rule__StringVariable__ProposalsAssignment_6_0 ) ) )
+            // InternalTestgeneratorDSL.g:5770:1: ( ( rule__StringVariable__ProposalsAssignment_6_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:5770:1: ( ( rule__StringVariable__ProposalsAssignment_6_0 ) )
+            // InternalTestgeneratorDSL.g:5771:2: ( rule__StringVariable__ProposalsAssignment_6_0 )
+            {
+             before(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_0()); 
+            // InternalTestgeneratorDSL.g:5772:2: ( rule__StringVariable__ProposalsAssignment_6_0 )
+            // InternalTestgeneratorDSL.g:5772:3: rule__StringVariable__ProposalsAssignment_6_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__ProposalsAssignment_6_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group_6__1"
+    // InternalTestgeneratorDSL.g:5780:1: rule__StringVariable__Group_6__1 : rule__StringVariable__Group_6__1__Impl ;
+    public final void rule__StringVariable__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5784:1: ( rule__StringVariable__Group_6__1__Impl )
+            // InternalTestgeneratorDSL.g:5785:2: rule__StringVariable__Group_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group_6__1"
+
+
+    // $ANTLR start "rule__StringVariable__Group_6__1__Impl"
+    // InternalTestgeneratorDSL.g:5791:1: rule__StringVariable__Group_6__1__Impl : ( ( rule__StringVariable__Group_6_1__0 )* ) ;
+    public final void rule__StringVariable__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5795:1: ( ( ( rule__StringVariable__Group_6_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:5796:1: ( ( rule__StringVariable__Group_6_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:5796:1: ( ( rule__StringVariable__Group_6_1__0 )* )
+            // InternalTestgeneratorDSL.g:5797:2: ( rule__StringVariable__Group_6_1__0 )*
+            {
+             before(grammarAccess.getStringVariableAccess().getGroup_6_1()); 
+            // InternalTestgeneratorDSL.g:5798:2: ( rule__StringVariable__Group_6_1__0 )*
+            loop33:
+            do {
+                int alt33=2;
+                int LA33_0 = input.LA(1);
+
+                if ( (LA33_0==RULE_SEPARATOR) ) {
+                    alt33=1;
+                }
+
+
+                switch (alt33) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:5798:3: rule__StringVariable__Group_6_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__StringVariable__Group_6_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop33;
+                }
+            } while (true);
+
+             after(grammarAccess.getStringVariableAccess().getGroup_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group_6_1__0"
+    // InternalTestgeneratorDSL.g:5807:1: rule__StringVariable__Group_6_1__0 : rule__StringVariable__Group_6_1__0__Impl rule__StringVariable__Group_6_1__1 ;
+    public final void rule__StringVariable__Group_6_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5811:1: ( rule__StringVariable__Group_6_1__0__Impl rule__StringVariable__Group_6_1__1 )
+            // InternalTestgeneratorDSL.g:5812:2: rule__StringVariable__Group_6_1__0__Impl rule__StringVariable__Group_6_1__1
+            {
+            pushFollow(FOLLOW_7);
+            rule__StringVariable__Group_6_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group_6_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group_6_1__0"
+
+
+    // $ANTLR start "rule__StringVariable__Group_6_1__0__Impl"
+    // InternalTestgeneratorDSL.g:5819:1: rule__StringVariable__Group_6_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__StringVariable__Group_6_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5823:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:5824:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:5824:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:5825:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getStringVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group_6_1__0__Impl"
+
+
+    // $ANTLR start "rule__StringVariable__Group_6_1__1"
+    // InternalTestgeneratorDSL.g:5834:1: rule__StringVariable__Group_6_1__1 : rule__StringVariable__Group_6_1__1__Impl ;
+    public final void rule__StringVariable__Group_6_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5838:1: ( rule__StringVariable__Group_6_1__1__Impl )
+            // InternalTestgeneratorDSL.g:5839:2: rule__StringVariable__Group_6_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__Group_6_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group_6_1__1"
+
+
+    // $ANTLR start "rule__StringVariable__Group_6_1__1__Impl"
+    // InternalTestgeneratorDSL.g:5845:1: rule__StringVariable__Group_6_1__1__Impl : ( ( rule__StringVariable__ProposalsAssignment_6_1_1 ) ) ;
+    public final void rule__StringVariable__Group_6_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5849:1: ( ( ( rule__StringVariable__ProposalsAssignment_6_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:5850:1: ( ( rule__StringVariable__ProposalsAssignment_6_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:5850:1: ( ( rule__StringVariable__ProposalsAssignment_6_1_1 ) )
+            // InternalTestgeneratorDSL.g:5851:2: ( rule__StringVariable__ProposalsAssignment_6_1_1 )
+            {
+             before(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_1_1()); 
+            // InternalTestgeneratorDSL.g:5852:2: ( rule__StringVariable__ProposalsAssignment_6_1_1 )
+            // InternalTestgeneratorDSL.g:5852:3: rule__StringVariable__ProposalsAssignment_6_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariable__ProposalsAssignment_6_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableAccess().getProposalsAssignment_6_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__Group_6_1__1__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__0"
+    // InternalTestgeneratorDSL.g:5861:1: rule__IntVariable__Group__0 : rule__IntVariable__Group__0__Impl rule__IntVariable__Group__1 ;
+    public final void rule__IntVariable__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5865:1: ( rule__IntVariable__Group__0__Impl rule__IntVariable__Group__1 )
+            // InternalTestgeneratorDSL.g:5866:2: rule__IntVariable__Group__0__Impl rule__IntVariable__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__IntVariable__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__0"
+
+
+    // $ANTLR start "rule__IntVariable__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:5873:1: rule__IntVariable__Group__0__Impl : ( 'Integer' ) ;
+    public final void rule__IntVariable__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5877:1: ( ( 'Integer' ) )
+            // InternalTestgeneratorDSL.g:5878:1: ( 'Integer' )
+            {
+            // InternalTestgeneratorDSL.g:5878:1: ( 'Integer' )
+            // InternalTestgeneratorDSL.g:5879:2: 'Integer'
+            {
+             before(grammarAccess.getIntVariableAccess().getIntegerKeyword_0()); 
+            match(input,50,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getIntegerKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__0__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__1"
+    // InternalTestgeneratorDSL.g:5888:1: rule__IntVariable__Group__1 : rule__IntVariable__Group__1__Impl rule__IntVariable__Group__2 ;
+    public final void rule__IntVariable__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5892:1: ( rule__IntVariable__Group__1__Impl rule__IntVariable__Group__2 )
+            // InternalTestgeneratorDSL.g:5893:2: rule__IntVariable__Group__1__Impl rule__IntVariable__Group__2
+            {
+            pushFollow(FOLLOW_5);
+            rule__IntVariable__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__1"
+
+
+    // $ANTLR start "rule__IntVariable__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:5900:1: rule__IntVariable__Group__1__Impl : ( ( rule__IntVariable__NameAssignment_1 ) ) ;
+    public final void rule__IntVariable__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5904:1: ( ( ( rule__IntVariable__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:5905:1: ( ( rule__IntVariable__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:5905:1: ( ( rule__IntVariable__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:5906:2: ( rule__IntVariable__NameAssignment_1 )
+            {
+             before(grammarAccess.getIntVariableAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:5907:2: ( rule__IntVariable__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:5907:3: rule__IntVariable__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__1__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__2"
+    // InternalTestgeneratorDSL.g:5915:1: rule__IntVariable__Group__2 : rule__IntVariable__Group__2__Impl rule__IntVariable__Group__3 ;
+    public final void rule__IntVariable__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5919:1: ( rule__IntVariable__Group__2__Impl rule__IntVariable__Group__3 )
+            // InternalTestgeneratorDSL.g:5920:2: rule__IntVariable__Group__2__Impl rule__IntVariable__Group__3
+            {
+            pushFollow(FOLLOW_35);
+            rule__IntVariable__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__2"
+
+
+    // $ANTLR start "rule__IntVariable__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:5927:1: rule__IntVariable__Group__2__Impl : ( 'with' ) ;
+    public final void rule__IntVariable__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5931:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:5932:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:5932:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:5933:2: 'with'
+            {
+             before(grammarAccess.getIntVariableAccess().getWithKeyword_2()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getWithKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__2__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__3"
+    // InternalTestgeneratorDSL.g:5942:1: rule__IntVariable__Group__3 : rule__IntVariable__Group__3__Impl rule__IntVariable__Group__4 ;
+    public final void rule__IntVariable__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5946:1: ( rule__IntVariable__Group__3__Impl rule__IntVariable__Group__4 )
+            // InternalTestgeneratorDSL.g:5947:2: rule__IntVariable__Group__3__Impl rule__IntVariable__Group__4
+            {
+            pushFollow(FOLLOW_12);
+            rule__IntVariable__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__3"
+
+
+    // $ANTLR start "rule__IntVariable__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:5954:1: rule__IntVariable__Group__3__Impl : ( 'proposals' ) ;
+    public final void rule__IntVariable__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5958:1: ( ( 'proposals' ) )
+            // InternalTestgeneratorDSL.g:5959:1: ( 'proposals' )
+            {
+            // InternalTestgeneratorDSL.g:5959:1: ( 'proposals' )
+            // InternalTestgeneratorDSL.g:5960:2: 'proposals'
+            {
+             before(grammarAccess.getIntVariableAccess().getProposalsKeyword_3()); 
+            match(input,49,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getProposalsKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__3__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__4"
+    // InternalTestgeneratorDSL.g:5969:1: rule__IntVariable__Group__4 : rule__IntVariable__Group__4__Impl rule__IntVariable__Group__5 ;
+    public final void rule__IntVariable__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5973:1: ( rule__IntVariable__Group__4__Impl rule__IntVariable__Group__5 )
+            // InternalTestgeneratorDSL.g:5974:2: rule__IntVariable__Group__4__Impl rule__IntVariable__Group__5
+            {
+            pushFollow(FOLLOW_13);
+            rule__IntVariable__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__4"
+
+
+    // $ANTLR start "rule__IntVariable__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:5981:1: rule__IntVariable__Group__4__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__IntVariable__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:5985:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:5986:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:5986:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:5987:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getIntVariableAccess().getASSOCIATIONTerminalRuleCall_4()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getASSOCIATIONTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__4__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__5"
+    // InternalTestgeneratorDSL.g:5996:1: rule__IntVariable__Group__5 : rule__IntVariable__Group__5__Impl rule__IntVariable__Group__6 ;
+    public final void rule__IntVariable__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6000:1: ( rule__IntVariable__Group__5__Impl rule__IntVariable__Group__6 )
+            // InternalTestgeneratorDSL.g:6001:2: rule__IntVariable__Group__5__Impl rule__IntVariable__Group__6
+            {
+            pushFollow(FOLLOW_36);
+            rule__IntVariable__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__5"
+
+
+    // $ANTLR start "rule__IntVariable__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:6008:1: rule__IntVariable__Group__5__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__IntVariable__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6012:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:6013:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:6013:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:6014:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getIntVariableAccess().getLIST_OPENTerminalRuleCall_5()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getLIST_OPENTerminalRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__5__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__6"
+    // InternalTestgeneratorDSL.g:6023:1: rule__IntVariable__Group__6 : rule__IntVariable__Group__6__Impl rule__IntVariable__Group__7 ;
+    public final void rule__IntVariable__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6027:1: ( rule__IntVariable__Group__6__Impl rule__IntVariable__Group__7 )
+            // InternalTestgeneratorDSL.g:6028:2: rule__IntVariable__Group__6__Impl rule__IntVariable__Group__7
+            {
+            pushFollow(FOLLOW_36);
+            rule__IntVariable__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__6"
+
+
+    // $ANTLR start "rule__IntVariable__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:6035:1: rule__IntVariable__Group__6__Impl : ( ( rule__IntVariable__Group_6__0 )? ) ;
+    public final void rule__IntVariable__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6039:1: ( ( ( rule__IntVariable__Group_6__0 )? ) )
+            // InternalTestgeneratorDSL.g:6040:1: ( ( rule__IntVariable__Group_6__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:6040:1: ( ( rule__IntVariable__Group_6__0 )? )
+            // InternalTestgeneratorDSL.g:6041:2: ( rule__IntVariable__Group_6__0 )?
+            {
+             before(grammarAccess.getIntVariableAccess().getGroup_6()); 
+            // InternalTestgeneratorDSL.g:6042:2: ( rule__IntVariable__Group_6__0 )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
+
+            if ( (LA34_0==RULE_INT) ) {
+                alt34=1;
+            }
+            switch (alt34) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:6042:3: rule__IntVariable__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__IntVariable__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getIntVariableAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__6__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__7"
+    // InternalTestgeneratorDSL.g:6050:1: rule__IntVariable__Group__7 : rule__IntVariable__Group__7__Impl rule__IntVariable__Group__8 ;
+    public final void rule__IntVariable__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6054:1: ( rule__IntVariable__Group__7__Impl rule__IntVariable__Group__8 )
+            // InternalTestgeneratorDSL.g:6055:2: rule__IntVariable__Group__7__Impl rule__IntVariable__Group__8
+            {
+            pushFollow(FOLLOW_22);
+            rule__IntVariable__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__7"
+
+
+    // $ANTLR start "rule__IntVariable__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:6062:1: rule__IntVariable__Group__7__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__IntVariable__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6066:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:6067:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:6067:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:6068:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getIntVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__7__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group__8"
+    // InternalTestgeneratorDSL.g:6077:1: rule__IntVariable__Group__8 : rule__IntVariable__Group__8__Impl ;
+    public final void rule__IntVariable__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6081:1: ( rule__IntVariable__Group__8__Impl )
+            // InternalTestgeneratorDSL.g:6082:2: rule__IntVariable__Group__8__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__8"
+
+
+    // $ANTLR start "rule__IntVariable__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:6088:1: rule__IntVariable__Group__8__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__IntVariable__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6092:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:6093:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:6093:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:6094:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getIntVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group__8__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group_6__0"
+    // InternalTestgeneratorDSL.g:6104:1: rule__IntVariable__Group_6__0 : rule__IntVariable__Group_6__0__Impl rule__IntVariable__Group_6__1 ;
+    public final void rule__IntVariable__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6108:1: ( rule__IntVariable__Group_6__0__Impl rule__IntVariable__Group_6__1 )
+            // InternalTestgeneratorDSL.g:6109:2: rule__IntVariable__Group_6__0__Impl rule__IntVariable__Group_6__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__IntVariable__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group_6__0"
+
+
+    // $ANTLR start "rule__IntVariable__Group_6__0__Impl"
+    // InternalTestgeneratorDSL.g:6116:1: rule__IntVariable__Group_6__0__Impl : ( ( rule__IntVariable__ProposalsAssignment_6_0 ) ) ;
+    public final void rule__IntVariable__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6120:1: ( ( ( rule__IntVariable__ProposalsAssignment_6_0 ) ) )
+            // InternalTestgeneratorDSL.g:6121:1: ( ( rule__IntVariable__ProposalsAssignment_6_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:6121:1: ( ( rule__IntVariable__ProposalsAssignment_6_0 ) )
+            // InternalTestgeneratorDSL.g:6122:2: ( rule__IntVariable__ProposalsAssignment_6_0 )
+            {
+             before(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_0()); 
+            // InternalTestgeneratorDSL.g:6123:2: ( rule__IntVariable__ProposalsAssignment_6_0 )
+            // InternalTestgeneratorDSL.g:6123:3: rule__IntVariable__ProposalsAssignment_6_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__ProposalsAssignment_6_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group_6__1"
+    // InternalTestgeneratorDSL.g:6131:1: rule__IntVariable__Group_6__1 : rule__IntVariable__Group_6__1__Impl ;
+    public final void rule__IntVariable__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6135:1: ( rule__IntVariable__Group_6__1__Impl )
+            // InternalTestgeneratorDSL.g:6136:2: rule__IntVariable__Group_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group_6__1"
+
+
+    // $ANTLR start "rule__IntVariable__Group_6__1__Impl"
+    // InternalTestgeneratorDSL.g:6142:1: rule__IntVariable__Group_6__1__Impl : ( ( rule__IntVariable__Group_6_1__0 )* ) ;
+    public final void rule__IntVariable__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6146:1: ( ( ( rule__IntVariable__Group_6_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:6147:1: ( ( rule__IntVariable__Group_6_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:6147:1: ( ( rule__IntVariable__Group_6_1__0 )* )
+            // InternalTestgeneratorDSL.g:6148:2: ( rule__IntVariable__Group_6_1__0 )*
+            {
+             before(grammarAccess.getIntVariableAccess().getGroup_6_1()); 
+            // InternalTestgeneratorDSL.g:6149:2: ( rule__IntVariable__Group_6_1__0 )*
+            loop35:
+            do {
+                int alt35=2;
+                int LA35_0 = input.LA(1);
+
+                if ( (LA35_0==RULE_SEPARATOR) ) {
+                    alt35=1;
+                }
+
+
+                switch (alt35) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:6149:3: rule__IntVariable__Group_6_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__IntVariable__Group_6_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop35;
+                }
+            } while (true);
+
+             after(grammarAccess.getIntVariableAccess().getGroup_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group_6_1__0"
+    // InternalTestgeneratorDSL.g:6158:1: rule__IntVariable__Group_6_1__0 : rule__IntVariable__Group_6_1__0__Impl rule__IntVariable__Group_6_1__1 ;
+    public final void rule__IntVariable__Group_6_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6162:1: ( rule__IntVariable__Group_6_1__0__Impl rule__IntVariable__Group_6_1__1 )
+            // InternalTestgeneratorDSL.g:6163:2: rule__IntVariable__Group_6_1__0__Impl rule__IntVariable__Group_6_1__1
+            {
+            pushFollow(FOLLOW_37);
+            rule__IntVariable__Group_6_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group_6_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group_6_1__0"
+
+
+    // $ANTLR start "rule__IntVariable__Group_6_1__0__Impl"
+    // InternalTestgeneratorDSL.g:6170:1: rule__IntVariable__Group_6_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__IntVariable__Group_6_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6174:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:6175:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:6175:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:6176:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getIntVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group_6_1__0__Impl"
+
+
+    // $ANTLR start "rule__IntVariable__Group_6_1__1"
+    // InternalTestgeneratorDSL.g:6185:1: rule__IntVariable__Group_6_1__1 : rule__IntVariable__Group_6_1__1__Impl ;
+    public final void rule__IntVariable__Group_6_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6189:1: ( rule__IntVariable__Group_6_1__1__Impl )
+            // InternalTestgeneratorDSL.g:6190:2: rule__IntVariable__Group_6_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__Group_6_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group_6_1__1"
+
+
+    // $ANTLR start "rule__IntVariable__Group_6_1__1__Impl"
+    // InternalTestgeneratorDSL.g:6196:1: rule__IntVariable__Group_6_1__1__Impl : ( ( rule__IntVariable__ProposalsAssignment_6_1_1 ) ) ;
+    public final void rule__IntVariable__Group_6_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6200:1: ( ( ( rule__IntVariable__ProposalsAssignment_6_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:6201:1: ( ( rule__IntVariable__ProposalsAssignment_6_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:6201:1: ( ( rule__IntVariable__ProposalsAssignment_6_1_1 ) )
+            // InternalTestgeneratorDSL.g:6202:2: ( rule__IntVariable__ProposalsAssignment_6_1_1 )
+            {
+             before(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_1_1()); 
+            // InternalTestgeneratorDSL.g:6203:2: ( rule__IntVariable__ProposalsAssignment_6_1_1 )
+            // InternalTestgeneratorDSL.g:6203:3: rule__IntVariable__ProposalsAssignment_6_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariable__ProposalsAssignment_6_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableAccess().getProposalsAssignment_6_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__Group_6_1__1__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__0"
+    // InternalTestgeneratorDSL.g:6212:1: rule__BooleanVariable__Group__0 : rule__BooleanVariable__Group__0__Impl rule__BooleanVariable__Group__1 ;
+    public final void rule__BooleanVariable__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6216:1: ( rule__BooleanVariable__Group__0__Impl rule__BooleanVariable__Group__1 )
+            // InternalTestgeneratorDSL.g:6217:2: rule__BooleanVariable__Group__0__Impl rule__BooleanVariable__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__BooleanVariable__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__0"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:6224:1: rule__BooleanVariable__Group__0__Impl : ( 'Boolean' ) ;
+    public final void rule__BooleanVariable__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6228:1: ( ( 'Boolean' ) )
+            // InternalTestgeneratorDSL.g:6229:1: ( 'Boolean' )
+            {
+            // InternalTestgeneratorDSL.g:6229:1: ( 'Boolean' )
+            // InternalTestgeneratorDSL.g:6230:2: 'Boolean'
+            {
+             before(grammarAccess.getBooleanVariableAccess().getBooleanKeyword_0()); 
+            match(input,51,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getBooleanKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__1"
+    // InternalTestgeneratorDSL.g:6239:1: rule__BooleanVariable__Group__1 : rule__BooleanVariable__Group__1__Impl rule__BooleanVariable__Group__2 ;
+    public final void rule__BooleanVariable__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6243:1: ( rule__BooleanVariable__Group__1__Impl rule__BooleanVariable__Group__2 )
+            // InternalTestgeneratorDSL.g:6244:2: rule__BooleanVariable__Group__1__Impl rule__BooleanVariable__Group__2
+            {
+            pushFollow(FOLLOW_5);
+            rule__BooleanVariable__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__1"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:6251:1: rule__BooleanVariable__Group__1__Impl : ( ( rule__BooleanVariable__NameAssignment_1 ) ) ;
+    public final void rule__BooleanVariable__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6255:1: ( ( ( rule__BooleanVariable__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:6256:1: ( ( rule__BooleanVariable__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:6256:1: ( ( rule__BooleanVariable__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:6257:2: ( rule__BooleanVariable__NameAssignment_1 )
+            {
+             before(grammarAccess.getBooleanVariableAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:6258:2: ( rule__BooleanVariable__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:6258:3: rule__BooleanVariable__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__2"
+    // InternalTestgeneratorDSL.g:6266:1: rule__BooleanVariable__Group__2 : rule__BooleanVariable__Group__2__Impl rule__BooleanVariable__Group__3 ;
+    public final void rule__BooleanVariable__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6270:1: ( rule__BooleanVariable__Group__2__Impl rule__BooleanVariable__Group__3 )
+            // InternalTestgeneratorDSL.g:6271:2: rule__BooleanVariable__Group__2__Impl rule__BooleanVariable__Group__3
+            {
+            pushFollow(FOLLOW_35);
+            rule__BooleanVariable__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__2"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:6278:1: rule__BooleanVariable__Group__2__Impl : ( 'with' ) ;
+    public final void rule__BooleanVariable__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6282:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:6283:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:6283:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:6284:2: 'with'
+            {
+             before(grammarAccess.getBooleanVariableAccess().getWithKeyword_2()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getWithKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__3"
+    // InternalTestgeneratorDSL.g:6293:1: rule__BooleanVariable__Group__3 : rule__BooleanVariable__Group__3__Impl rule__BooleanVariable__Group__4 ;
+    public final void rule__BooleanVariable__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6297:1: ( rule__BooleanVariable__Group__3__Impl rule__BooleanVariable__Group__4 )
+            // InternalTestgeneratorDSL.g:6298:2: rule__BooleanVariable__Group__3__Impl rule__BooleanVariable__Group__4
+            {
+            pushFollow(FOLLOW_12);
+            rule__BooleanVariable__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__3"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:6305:1: rule__BooleanVariable__Group__3__Impl : ( 'proposals' ) ;
+    public final void rule__BooleanVariable__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6309:1: ( ( 'proposals' ) )
+            // InternalTestgeneratorDSL.g:6310:1: ( 'proposals' )
+            {
+            // InternalTestgeneratorDSL.g:6310:1: ( 'proposals' )
+            // InternalTestgeneratorDSL.g:6311:2: 'proposals'
+            {
+             before(grammarAccess.getBooleanVariableAccess().getProposalsKeyword_3()); 
+            match(input,49,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getProposalsKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__3__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__4"
+    // InternalTestgeneratorDSL.g:6320:1: rule__BooleanVariable__Group__4 : rule__BooleanVariable__Group__4__Impl rule__BooleanVariable__Group__5 ;
+    public final void rule__BooleanVariable__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6324:1: ( rule__BooleanVariable__Group__4__Impl rule__BooleanVariable__Group__5 )
+            // InternalTestgeneratorDSL.g:6325:2: rule__BooleanVariable__Group__4__Impl rule__BooleanVariable__Group__5
+            {
+            pushFollow(FOLLOW_13);
+            rule__BooleanVariable__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__4"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:6332:1: rule__BooleanVariable__Group__4__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__BooleanVariable__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6336:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:6337:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:6337:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:6338:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getBooleanVariableAccess().getASSOCIATIONTerminalRuleCall_4()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getASSOCIATIONTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__4__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__5"
+    // InternalTestgeneratorDSL.g:6347:1: rule__BooleanVariable__Group__5 : rule__BooleanVariable__Group__5__Impl rule__BooleanVariable__Group__6 ;
+    public final void rule__BooleanVariable__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6351:1: ( rule__BooleanVariable__Group__5__Impl rule__BooleanVariable__Group__6 )
+            // InternalTestgeneratorDSL.g:6352:2: rule__BooleanVariable__Group__5__Impl rule__BooleanVariable__Group__6
+            {
+            pushFollow(FOLLOW_38);
+            rule__BooleanVariable__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__5"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:6359:1: rule__BooleanVariable__Group__5__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__BooleanVariable__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6363:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:6364:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:6364:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:6365:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getBooleanVariableAccess().getLIST_OPENTerminalRuleCall_5()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getLIST_OPENTerminalRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__5__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__6"
+    // InternalTestgeneratorDSL.g:6374:1: rule__BooleanVariable__Group__6 : rule__BooleanVariable__Group__6__Impl rule__BooleanVariable__Group__7 ;
+    public final void rule__BooleanVariable__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6378:1: ( rule__BooleanVariable__Group__6__Impl rule__BooleanVariable__Group__7 )
+            // InternalTestgeneratorDSL.g:6379:2: rule__BooleanVariable__Group__6__Impl rule__BooleanVariable__Group__7
+            {
+            pushFollow(FOLLOW_38);
+            rule__BooleanVariable__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__6"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:6386:1: rule__BooleanVariable__Group__6__Impl : ( ( rule__BooleanVariable__Group_6__0 )? ) ;
+    public final void rule__BooleanVariable__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6390:1: ( ( ( rule__BooleanVariable__Group_6__0 )? ) )
+            // InternalTestgeneratorDSL.g:6391:1: ( ( rule__BooleanVariable__Group_6__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:6391:1: ( ( rule__BooleanVariable__Group_6__0 )? )
+            // InternalTestgeneratorDSL.g:6392:2: ( rule__BooleanVariable__Group_6__0 )?
+            {
+             before(grammarAccess.getBooleanVariableAccess().getGroup_6()); 
+            // InternalTestgeneratorDSL.g:6393:2: ( rule__BooleanVariable__Group_6__0 )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
+
+            if ( ((LA36_0>=16 && LA36_0<=17)) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:6393:3: rule__BooleanVariable__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__BooleanVariable__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getBooleanVariableAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__6__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__7"
+    // InternalTestgeneratorDSL.g:6401:1: rule__BooleanVariable__Group__7 : rule__BooleanVariable__Group__7__Impl rule__BooleanVariable__Group__8 ;
+    public final void rule__BooleanVariable__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6405:1: ( rule__BooleanVariable__Group__7__Impl rule__BooleanVariable__Group__8 )
+            // InternalTestgeneratorDSL.g:6406:2: rule__BooleanVariable__Group__7__Impl rule__BooleanVariable__Group__8
+            {
+            pushFollow(FOLLOW_22);
+            rule__BooleanVariable__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__7"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:6413:1: rule__BooleanVariable__Group__7__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__BooleanVariable__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6417:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:6418:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:6418:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:6419:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getBooleanVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getLIST_CLOSEDTerminalRuleCall_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__7__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__8"
+    // InternalTestgeneratorDSL.g:6428:1: rule__BooleanVariable__Group__8 : rule__BooleanVariable__Group__8__Impl ;
+    public final void rule__BooleanVariable__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6432:1: ( rule__BooleanVariable__Group__8__Impl )
+            // InternalTestgeneratorDSL.g:6433:2: rule__BooleanVariable__Group__8__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__8"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:6439:1: rule__BooleanVariable__Group__8__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__BooleanVariable__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6443:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:6444:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:6444:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:6445:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getBooleanVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group__8__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group_6__0"
+    // InternalTestgeneratorDSL.g:6455:1: rule__BooleanVariable__Group_6__0 : rule__BooleanVariable__Group_6__0__Impl rule__BooleanVariable__Group_6__1 ;
+    public final void rule__BooleanVariable__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6459:1: ( rule__BooleanVariable__Group_6__0__Impl rule__BooleanVariable__Group_6__1 )
+            // InternalTestgeneratorDSL.g:6460:2: rule__BooleanVariable__Group_6__0__Impl rule__BooleanVariable__Group_6__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__BooleanVariable__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group_6__0"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group_6__0__Impl"
+    // InternalTestgeneratorDSL.g:6467:1: rule__BooleanVariable__Group_6__0__Impl : ( ( rule__BooleanVariable__ProposalsAssignment_6_0 ) ) ;
+    public final void rule__BooleanVariable__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6471:1: ( ( ( rule__BooleanVariable__ProposalsAssignment_6_0 ) ) )
+            // InternalTestgeneratorDSL.g:6472:1: ( ( rule__BooleanVariable__ProposalsAssignment_6_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:6472:1: ( ( rule__BooleanVariable__ProposalsAssignment_6_0 ) )
+            // InternalTestgeneratorDSL.g:6473:2: ( rule__BooleanVariable__ProposalsAssignment_6_0 )
+            {
+             before(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_0()); 
+            // InternalTestgeneratorDSL.g:6474:2: ( rule__BooleanVariable__ProposalsAssignment_6_0 )
+            // InternalTestgeneratorDSL.g:6474:3: rule__BooleanVariable__ProposalsAssignment_6_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__ProposalsAssignment_6_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group_6__1"
+    // InternalTestgeneratorDSL.g:6482:1: rule__BooleanVariable__Group_6__1 : rule__BooleanVariable__Group_6__1__Impl ;
+    public final void rule__BooleanVariable__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6486:1: ( rule__BooleanVariable__Group_6__1__Impl )
+            // InternalTestgeneratorDSL.g:6487:2: rule__BooleanVariable__Group_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group_6__1"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group_6__1__Impl"
+    // InternalTestgeneratorDSL.g:6493:1: rule__BooleanVariable__Group_6__1__Impl : ( ( rule__BooleanVariable__Group_6_1__0 )* ) ;
+    public final void rule__BooleanVariable__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6497:1: ( ( ( rule__BooleanVariable__Group_6_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:6498:1: ( ( rule__BooleanVariable__Group_6_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:6498:1: ( ( rule__BooleanVariable__Group_6_1__0 )* )
+            // InternalTestgeneratorDSL.g:6499:2: ( rule__BooleanVariable__Group_6_1__0 )*
+            {
+             before(grammarAccess.getBooleanVariableAccess().getGroup_6_1()); 
+            // InternalTestgeneratorDSL.g:6500:2: ( rule__BooleanVariable__Group_6_1__0 )*
+            loop37:
+            do {
+                int alt37=2;
+                int LA37_0 = input.LA(1);
+
+                if ( (LA37_0==RULE_SEPARATOR) ) {
+                    alt37=1;
+                }
+
+
+                switch (alt37) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:6500:3: rule__BooleanVariable__Group_6_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__BooleanVariable__Group_6_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop37;
+                }
+            } while (true);
+
+             after(grammarAccess.getBooleanVariableAccess().getGroup_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group_6_1__0"
+    // InternalTestgeneratorDSL.g:6509:1: rule__BooleanVariable__Group_6_1__0 : rule__BooleanVariable__Group_6_1__0__Impl rule__BooleanVariable__Group_6_1__1 ;
+    public final void rule__BooleanVariable__Group_6_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6513:1: ( rule__BooleanVariable__Group_6_1__0__Impl rule__BooleanVariable__Group_6_1__1 )
+            // InternalTestgeneratorDSL.g:6514:2: rule__BooleanVariable__Group_6_1__0__Impl rule__BooleanVariable__Group_6_1__1
+            {
+            pushFollow(FOLLOW_39);
+            rule__BooleanVariable__Group_6_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group_6_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group_6_1__0"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group_6_1__0__Impl"
+    // InternalTestgeneratorDSL.g:6521:1: rule__BooleanVariable__Group_6_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__BooleanVariable__Group_6_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6525:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:6526:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:6526:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:6527:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getBooleanVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getSEPARATORTerminalRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group_6_1__0__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group_6_1__1"
+    // InternalTestgeneratorDSL.g:6536:1: rule__BooleanVariable__Group_6_1__1 : rule__BooleanVariable__Group_6_1__1__Impl ;
+    public final void rule__BooleanVariable__Group_6_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6540:1: ( rule__BooleanVariable__Group_6_1__1__Impl )
+            // InternalTestgeneratorDSL.g:6541:2: rule__BooleanVariable__Group_6_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__Group_6_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group_6_1__1"
+
+
+    // $ANTLR start "rule__BooleanVariable__Group_6_1__1__Impl"
+    // InternalTestgeneratorDSL.g:6547:1: rule__BooleanVariable__Group_6_1__1__Impl : ( ( rule__BooleanVariable__ProposalsAssignment_6_1_1 ) ) ;
+    public final void rule__BooleanVariable__Group_6_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6551:1: ( ( ( rule__BooleanVariable__ProposalsAssignment_6_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:6552:1: ( ( rule__BooleanVariable__ProposalsAssignment_6_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:6552:1: ( ( rule__BooleanVariable__ProposalsAssignment_6_1_1 ) )
+            // InternalTestgeneratorDSL.g:6553:2: ( rule__BooleanVariable__ProposalsAssignment_6_1_1 )
+            {
+             before(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_1_1()); 
+            // InternalTestgeneratorDSL.g:6554:2: ( rule__BooleanVariable__ProposalsAssignment_6_1_1 )
+            // InternalTestgeneratorDSL.g:6554:3: rule__BooleanVariable__ProposalsAssignment_6_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariable__ProposalsAssignment_6_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableAccess().getProposalsAssignment_6_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__Group_6_1__1__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__0"
+    // InternalTestgeneratorDSL.g:6563: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 {
+            // InternalTestgeneratorDSL.g:6567:1: ( rule__Loop__Group__0__Impl rule__Loop__Group__1 )
+            // InternalTestgeneratorDSL.g:6568:2: rule__Loop__Group__0__Impl rule__Loop__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Loop__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            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"
+    // InternalTestgeneratorDSL.g:6575:1: rule__Loop__Group__0__Impl : ( 'Loop' ) ;
+    public final void rule__Loop__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6579:1: ( ( 'Loop' ) )
+            // InternalTestgeneratorDSL.g:6580:1: ( 'Loop' )
+            {
+            // InternalTestgeneratorDSL.g:6580:1: ( 'Loop' )
+            // InternalTestgeneratorDSL.g:6581:2: 'Loop'
+            {
+             before(grammarAccess.getLoopAccess().getLoopKeyword_0()); 
+            match(input,52,FOLLOW_2); 
+             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"
+    // InternalTestgeneratorDSL.g:6590: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 {
+            // InternalTestgeneratorDSL.g:6594:1: ( rule__Loop__Group__1__Impl rule__Loop__Group__2 )
+            // InternalTestgeneratorDSL.g:6595:2: rule__Loop__Group__1__Impl rule__Loop__Group__2
+            {
+            pushFollow(FOLLOW_40);
+            rule__Loop__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            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"
+    // InternalTestgeneratorDSL.g:6602:1: rule__Loop__Group__1__Impl : ( ( rule__Loop__NameAssignment_1 ) ) ;
+    public final void rule__Loop__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6606:1: ( ( ( rule__Loop__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:6607:1: ( ( rule__Loop__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:6607:1: ( ( rule__Loop__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:6608:2: ( rule__Loop__NameAssignment_1 )
+            {
+             before(grammarAccess.getLoopAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:6609:2: ( rule__Loop__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:6609:3: rule__Loop__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getNameAssignment_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"
+    // InternalTestgeneratorDSL.g:6617: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 {
+            // InternalTestgeneratorDSL.g:6621:1: ( rule__Loop__Group__2__Impl rule__Loop__Group__3 )
+            // InternalTestgeneratorDSL.g:6622:2: rule__Loop__Group__2__Impl rule__Loop__Group__3
+            {
+            pushFollow(FOLLOW_5);
+            rule__Loop__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            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"
+    // InternalTestgeneratorDSL.g:6629:1: rule__Loop__Group__2__Impl : ( 'starts' ) ;
+    public final void rule__Loop__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6633:1: ( ( 'starts' ) )
+            // InternalTestgeneratorDSL.g:6634:1: ( 'starts' )
+            {
+            // InternalTestgeneratorDSL.g:6634:1: ( 'starts' )
+            // InternalTestgeneratorDSL.g:6635:2: 'starts'
+            {
+             before(grammarAccess.getLoopAccess().getStartsKeyword_2()); 
+            match(input,53,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getStartsKeyword_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"
+    // InternalTestgeneratorDSL.g:6644: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 {
+            // InternalTestgeneratorDSL.g:6648:1: ( rule__Loop__Group__3__Impl rule__Loop__Group__4 )
+            // InternalTestgeneratorDSL.g:6649:2: rule__Loop__Group__3__Impl rule__Loop__Group__4
+            {
+            pushFollow(FOLLOW_7);
+            rule__Loop__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            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"
+    // InternalTestgeneratorDSL.g:6656:1: rule__Loop__Group__3__Impl : ( 'with' ) ;
+    public final void rule__Loop__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6660:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:6661:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:6661:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:6662:2: 'with'
+            {
+             before(grammarAccess.getLoopAccess().getWithKeyword_3()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getWithKeyword_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"
+    // InternalTestgeneratorDSL.g:6671: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 {
+            // InternalTestgeneratorDSL.g:6675:1: ( rule__Loop__Group__4__Impl rule__Loop__Group__5 )
+            // InternalTestgeneratorDSL.g:6676:2: rule__Loop__Group__4__Impl rule__Loop__Group__5
+            {
+            pushFollow(FOLLOW_41);
+            rule__Loop__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            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"
+    // InternalTestgeneratorDSL.g:6683:1: rule__Loop__Group__4__Impl : ( ( rule__Loop__StartAssignment_4 ) ) ;
+    public final void rule__Loop__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6687:1: ( ( ( rule__Loop__StartAssignment_4 ) ) )
+            // InternalTestgeneratorDSL.g:6688:1: ( ( rule__Loop__StartAssignment_4 ) )
+            {
+            // InternalTestgeneratorDSL.g:6688:1: ( ( rule__Loop__StartAssignment_4 ) )
+            // InternalTestgeneratorDSL.g:6689:2: ( rule__Loop__StartAssignment_4 )
+            {
+             before(grammarAccess.getLoopAccess().getStartAssignment_4()); 
+            // InternalTestgeneratorDSL.g:6690:2: ( rule__Loop__StartAssignment_4 )
+            // InternalTestgeneratorDSL.g:6690:3: rule__Loop__StartAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__StartAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getStartAssignment_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"
+    // InternalTestgeneratorDSL.g:6698: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 {
+            // InternalTestgeneratorDSL.g:6702:1: ( rule__Loop__Group__5__Impl rule__Loop__Group__6 )
+            // InternalTestgeneratorDSL.g:6703:2: rule__Loop__Group__5__Impl rule__Loop__Group__6
+            {
+            pushFollow(FOLLOW_42);
+            rule__Loop__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            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"
+    // InternalTestgeneratorDSL.g:6710:1: rule__Loop__Group__5__Impl : ( 'follows' ) ;
+    public final void rule__Loop__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6714:1: ( ( 'follows' ) )
+            // InternalTestgeneratorDSL.g:6715:1: ( 'follows' )
+            {
+            // InternalTestgeneratorDSL.g:6715:1: ( 'follows' )
+            // InternalTestgeneratorDSL.g:6716:2: 'follows'
+            {
+             before(grammarAccess.getLoopAccess().getFollowsKeyword_5()); 
+            match(input,54,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getFollowsKeyword_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"
+    // InternalTestgeneratorDSL.g:6725: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 {
+            // InternalTestgeneratorDSL.g:6729:1: ( rule__Loop__Group__6__Impl rule__Loop__Group__7 )
+            // InternalTestgeneratorDSL.g:6730:2: rule__Loop__Group__6__Impl rule__Loop__Group__7
+            {
+            pushFollow(FOLLOW_7);
+            rule__Loop__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            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"
+    // InternalTestgeneratorDSL.g:6737:1: rule__Loop__Group__6__Impl : ( 'by' ) ;
+    public final void rule__Loop__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6741:1: ( ( 'by' ) )
+            // InternalTestgeneratorDSL.g:6742:1: ( 'by' )
+            {
+            // InternalTestgeneratorDSL.g:6742:1: ( 'by' )
+            // InternalTestgeneratorDSL.g:6743:2: 'by'
+            {
+             before(grammarAccess.getLoopAccess().getByKeyword_6()); 
+            match(input,55,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getByKeyword_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"
+    // InternalTestgeneratorDSL.g:6752: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 {
+            // InternalTestgeneratorDSL.g:6756:1: ( rule__Loop__Group__7__Impl rule__Loop__Group__8 )
+            // InternalTestgeneratorDSL.g:6757:2: rule__Loop__Group__7__Impl rule__Loop__Group__8
+            {
+            pushFollow(FOLLOW_43);
+            rule__Loop__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            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"
+    // InternalTestgeneratorDSL.g:6764:1: rule__Loop__Group__7__Impl : ( ( rule__Loop__FollowerAssignment_7 ) ) ;
+    public final void rule__Loop__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6768:1: ( ( ( rule__Loop__FollowerAssignment_7 ) ) )
+            // InternalTestgeneratorDSL.g:6769:1: ( ( rule__Loop__FollowerAssignment_7 ) )
+            {
+            // InternalTestgeneratorDSL.g:6769:1: ( ( rule__Loop__FollowerAssignment_7 ) )
+            // InternalTestgeneratorDSL.g:6770:2: ( rule__Loop__FollowerAssignment_7 )
+            {
+             before(grammarAccess.getLoopAccess().getFollowerAssignment_7()); 
+            // InternalTestgeneratorDSL.g:6771:2: ( rule__Loop__FollowerAssignment_7 )
+            // InternalTestgeneratorDSL.g:6771:3: rule__Loop__FollowerAssignment_7
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__FollowerAssignment_7();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getFollowerAssignment_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"
+    // InternalTestgeneratorDSL.g:6779:1: rule__Loop__Group__8 : rule__Loop__Group__8__Impl rule__Loop__Group__9 ;
+    public final void rule__Loop__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6783:1: ( rule__Loop__Group__8__Impl rule__Loop__Group__9 )
+            // InternalTestgeneratorDSL.g:6784:2: rule__Loop__Group__8__Impl rule__Loop__Group__9
+            {
+            pushFollow(FOLLOW_5);
+            rule__Loop__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__9();
+
+            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"
+    // InternalTestgeneratorDSL.g:6791:1: rule__Loop__Group__8__Impl : ( 'ends' ) ;
+    public final void rule__Loop__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6795:1: ( ( 'ends' ) )
+            // InternalTestgeneratorDSL.g:6796:1: ( 'ends' )
+            {
+            // InternalTestgeneratorDSL.g:6796:1: ( 'ends' )
+            // InternalTestgeneratorDSL.g:6797:2: 'ends'
+            {
+             before(grammarAccess.getLoopAccess().getEndsKeyword_8()); 
+            match(input,56,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getEndsKeyword_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__9"
+    // InternalTestgeneratorDSL.g:6806:1: rule__Loop__Group__9 : rule__Loop__Group__9__Impl rule__Loop__Group__10 ;
+    public final void rule__Loop__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6810:1: ( rule__Loop__Group__9__Impl rule__Loop__Group__10 )
+            // InternalTestgeneratorDSL.g:6811:2: rule__Loop__Group__9__Impl rule__Loop__Group__10
+            {
+            pushFollow(FOLLOW_7);
+            rule__Loop__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__9"
+
+
+    // $ANTLR start "rule__Loop__Group__9__Impl"
+    // InternalTestgeneratorDSL.g:6818:1: rule__Loop__Group__9__Impl : ( 'with' ) ;
+    public final void rule__Loop__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6822:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:6823:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:6823:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:6824:2: 'with'
+            {
+             before(grammarAccess.getLoopAccess().getWithKeyword_9()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getWithKeyword_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__10"
+    // InternalTestgeneratorDSL.g:6833:1: rule__Loop__Group__10 : rule__Loop__Group__10__Impl rule__Loop__Group__11 ;
+    public final void rule__Loop__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6837:1: ( rule__Loop__Group__10__Impl rule__Loop__Group__11 )
+            // InternalTestgeneratorDSL.g:6838:2: rule__Loop__Group__10__Impl rule__Loop__Group__11
+            {
+            pushFollow(FOLLOW_44);
+            rule__Loop__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__10"
+
+
+    // $ANTLR start "rule__Loop__Group__10__Impl"
+    // InternalTestgeneratorDSL.g:6845:1: rule__Loop__Group__10__Impl : ( ( rule__Loop__EndAssignment_10 ) ) ;
+    public final void rule__Loop__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6849:1: ( ( ( rule__Loop__EndAssignment_10 ) ) )
+            // InternalTestgeneratorDSL.g:6850:1: ( ( rule__Loop__EndAssignment_10 ) )
+            {
+            // InternalTestgeneratorDSL.g:6850:1: ( ( rule__Loop__EndAssignment_10 ) )
+            // InternalTestgeneratorDSL.g:6851:2: ( rule__Loop__EndAssignment_10 )
+            {
+             before(grammarAccess.getLoopAccess().getEndAssignment_10()); 
+            // InternalTestgeneratorDSL.g:6852:2: ( rule__Loop__EndAssignment_10 )
+            // InternalTestgeneratorDSL.g:6852:3: rule__Loop__EndAssignment_10
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__EndAssignment_10();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getEndAssignment_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__10__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__11"
+    // InternalTestgeneratorDSL.g:6860:1: rule__Loop__Group__11 : rule__Loop__Group__11__Impl rule__Loop__Group__12 ;
+    public final void rule__Loop__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6864:1: ( rule__Loop__Group__11__Impl rule__Loop__Group__12 )
+            // InternalTestgeneratorDSL.g:6865:2: rule__Loop__Group__11__Impl rule__Loop__Group__12
+            {
+            pushFollow(FOLLOW_45);
+            rule__Loop__Group__11__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__12();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__11"
+
+
+    // $ANTLR start "rule__Loop__Group__11__Impl"
+    // InternalTestgeneratorDSL.g:6872:1: rule__Loop__Group__11__Impl : ( 'has' ) ;
+    public final void rule__Loop__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6876:1: ( ( 'has' ) )
+            // InternalTestgeneratorDSL.g:6877:1: ( 'has' )
+            {
+            // InternalTestgeneratorDSL.g:6877:1: ( 'has' )
+            // InternalTestgeneratorDSL.g:6878:2: 'has'
+            {
+             before(grammarAccess.getLoopAccess().getHasKeyword_11()); 
+            match(input,57,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getHasKeyword_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__11__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__12"
+    // InternalTestgeneratorDSL.g:6887:1: rule__Loop__Group__12 : rule__Loop__Group__12__Impl rule__Loop__Group__13 ;
+    public final void rule__Loop__Group__12() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6891:1: ( rule__Loop__Group__12__Impl rule__Loop__Group__13 )
+            // InternalTestgeneratorDSL.g:6892:2: rule__Loop__Group__12__Impl rule__Loop__Group__13
+            {
+            pushFollow(FOLLOW_37);
+            rule__Loop__Group__12__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__13();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__12"
+
+
+    // $ANTLR start "rule__Loop__Group__12__Impl"
+    // InternalTestgeneratorDSL.g:6899:1: rule__Loop__Group__12__Impl : ( 'complexity' ) ;
+    public final void rule__Loop__Group__12__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6903:1: ( ( 'complexity' ) )
+            // InternalTestgeneratorDSL.g:6904:1: ( 'complexity' )
+            {
+            // InternalTestgeneratorDSL.g:6904:1: ( 'complexity' )
+            // InternalTestgeneratorDSL.g:6905:2: 'complexity'
+            {
+             before(grammarAccess.getLoopAccess().getComplexityKeyword_12()); 
+            match(input,58,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getComplexityKeyword_12()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__12__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__13"
+    // InternalTestgeneratorDSL.g:6914:1: rule__Loop__Group__13 : rule__Loop__Group__13__Impl rule__Loop__Group__14 ;
+    public final void rule__Loop__Group__13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6918:1: ( rule__Loop__Group__13__Impl rule__Loop__Group__14 )
+            // InternalTestgeneratorDSL.g:6919:2: rule__Loop__Group__13__Impl rule__Loop__Group__14
+            {
+            pushFollow(FOLLOW_46);
+            rule__Loop__Group__13__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__14();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__13"
+
+
+    // $ANTLR start "rule__Loop__Group__13__Impl"
+    // InternalTestgeneratorDSL.g:6926:1: rule__Loop__Group__13__Impl : ( ( rule__Loop__ComplexityAssignment_13 ) ) ;
+    public final void rule__Loop__Group__13__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6930:1: ( ( ( rule__Loop__ComplexityAssignment_13 ) ) )
+            // InternalTestgeneratorDSL.g:6931:1: ( ( rule__Loop__ComplexityAssignment_13 ) )
+            {
+            // InternalTestgeneratorDSL.g:6931:1: ( ( rule__Loop__ComplexityAssignment_13 ) )
+            // InternalTestgeneratorDSL.g:6932:2: ( rule__Loop__ComplexityAssignment_13 )
+            {
+             before(grammarAccess.getLoopAccess().getComplexityAssignment_13()); 
+            // InternalTestgeneratorDSL.g:6933:2: ( rule__Loop__ComplexityAssignment_13 )
+            // InternalTestgeneratorDSL.g:6933:3: rule__Loop__ComplexityAssignment_13
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__ComplexityAssignment_13();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getComplexityAssignment_13()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__13__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__14"
+    // InternalTestgeneratorDSL.g:6941:1: rule__Loop__Group__14 : rule__Loop__Group__14__Impl rule__Loop__Group__15 ;
+    public final void rule__Loop__Group__14() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6945:1: ( rule__Loop__Group__14__Impl rule__Loop__Group__15 )
+            // InternalTestgeneratorDSL.g:6946:2: rule__Loop__Group__14__Impl rule__Loop__Group__15
+            {
+            pushFollow(FOLLOW_12);
+            rule__Loop__Group__14__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__15();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__14"
+
+
+    // $ANTLR start "rule__Loop__Group__14__Impl"
+    // InternalTestgeneratorDSL.g:6953:1: rule__Loop__Group__14__Impl : ( 'passed' ) ;
+    public final void rule__Loop__Group__14__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6957:1: ( ( 'passed' ) )
+            // InternalTestgeneratorDSL.g:6958:1: ( 'passed' )
+            {
+            // InternalTestgeneratorDSL.g:6958:1: ( 'passed' )
+            // InternalTestgeneratorDSL.g:6959:2: 'passed'
+            {
+             before(grammarAccess.getLoopAccess().getPassedKeyword_14()); 
+            match(input,59,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getPassedKeyword_14()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__14__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__15"
+    // InternalTestgeneratorDSL.g:6968:1: rule__Loop__Group__15 : rule__Loop__Group__15__Impl rule__Loop__Group__16 ;
+    public final void rule__Loop__Group__15() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6972:1: ( rule__Loop__Group__15__Impl rule__Loop__Group__16 )
+            // InternalTestgeneratorDSL.g:6973:2: rule__Loop__Group__15__Impl rule__Loop__Group__16
+            {
+            pushFollow(FOLLOW_13);
+            rule__Loop__Group__15__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__16();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__15"
+
+
+    // $ANTLR start "rule__Loop__Group__15__Impl"
+    // InternalTestgeneratorDSL.g:6980:1: rule__Loop__Group__15__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__Loop__Group__15__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6984:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:6985:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:6985:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:6986:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getLoopAccess().getASSOCIATIONTerminalRuleCall_15()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getASSOCIATIONTerminalRuleCall_15()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__15__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__16"
+    // InternalTestgeneratorDSL.g:6995:1: rule__Loop__Group__16 : rule__Loop__Group__16__Impl rule__Loop__Group__17 ;
+    public final void rule__Loop__Group__16() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:6999:1: ( rule__Loop__Group__16__Impl rule__Loop__Group__17 )
+            // InternalTestgeneratorDSL.g:7000:2: rule__Loop__Group__16__Impl rule__Loop__Group__17
+            {
+            pushFollow(FOLLOW_36);
+            rule__Loop__Group__16__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__17();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__16"
+
+
+    // $ANTLR start "rule__Loop__Group__16__Impl"
+    // InternalTestgeneratorDSL.g:7007:1: rule__Loop__Group__16__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__Loop__Group__16__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7011:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:7012:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:7012:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:7013:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getLoopAccess().getLIST_OPENTerminalRuleCall_16()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getLIST_OPENTerminalRuleCall_16()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__16__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__17"
+    // InternalTestgeneratorDSL.g:7022:1: rule__Loop__Group__17 : rule__Loop__Group__17__Impl rule__Loop__Group__18 ;
+    public final void rule__Loop__Group__17() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7026:1: ( rule__Loop__Group__17__Impl rule__Loop__Group__18 )
+            // InternalTestgeneratorDSL.g:7027:2: rule__Loop__Group__17__Impl rule__Loop__Group__18
+            {
+            pushFollow(FOLLOW_36);
+            rule__Loop__Group__17__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__18();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__17"
+
+
+    // $ANTLR start "rule__Loop__Group__17__Impl"
+    // InternalTestgeneratorDSL.g:7034:1: rule__Loop__Group__17__Impl : ( ( rule__Loop__Group_17__0 )? ) ;
+    public final void rule__Loop__Group__17__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7038:1: ( ( ( rule__Loop__Group_17__0 )? ) )
+            // InternalTestgeneratorDSL.g:7039:1: ( ( rule__Loop__Group_17__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:7039:1: ( ( rule__Loop__Group_17__0 )? )
+            // InternalTestgeneratorDSL.g:7040:2: ( rule__Loop__Group_17__0 )?
+            {
+             before(grammarAccess.getLoopAccess().getGroup_17()); 
+            // InternalTestgeneratorDSL.g:7041:2: ( rule__Loop__Group_17__0 )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==RULE_INT) ) {
+                alt38=1;
+            }
+            switch (alt38) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:7041:3: rule__Loop__Group_17__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Loop__Group_17__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getLoopAccess().getGroup_17()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__17__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__18"
+    // InternalTestgeneratorDSL.g:7049:1: rule__Loop__Group__18 : rule__Loop__Group__18__Impl rule__Loop__Group__19 ;
+    public final void rule__Loop__Group__18() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7053:1: ( rule__Loop__Group__18__Impl rule__Loop__Group__19 )
+            // InternalTestgeneratorDSL.g:7054:2: rule__Loop__Group__18__Impl rule__Loop__Group__19
+            {
+            pushFollow(FOLLOW_22);
+            rule__Loop__Group__18__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__19();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__18"
+
+
+    // $ANTLR start "rule__Loop__Group__18__Impl"
+    // InternalTestgeneratorDSL.g:7061:1: rule__Loop__Group__18__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__Loop__Group__18__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7065:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:7066:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:7066:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:7067:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getLoopAccess().getLIST_CLOSEDTerminalRuleCall_18()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getLIST_CLOSEDTerminalRuleCall_18()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__18__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group__19"
+    // InternalTestgeneratorDSL.g:7076:1: rule__Loop__Group__19 : rule__Loop__Group__19__Impl ;
+    public final void rule__Loop__Group__19() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7080:1: ( rule__Loop__Group__19__Impl )
+            // InternalTestgeneratorDSL.g:7081:2: rule__Loop__Group__19__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group__19__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__19"
+
+
+    // $ANTLR start "rule__Loop__Group__19__Impl"
+    // InternalTestgeneratorDSL.g:7087:1: rule__Loop__Group__19__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__Loop__Group__19__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7091:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:7092:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:7092:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:7093:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getLoopAccess().getDECLARATION_FINISHEDTerminalRuleCall_19()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getDECLARATION_FINISHEDTerminalRuleCall_19()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group__19__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group_17__0"
+    // InternalTestgeneratorDSL.g:7103:1: rule__Loop__Group_17__0 : rule__Loop__Group_17__0__Impl rule__Loop__Group_17__1 ;
+    public final void rule__Loop__Group_17__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7107:1: ( rule__Loop__Group_17__0__Impl rule__Loop__Group_17__1 )
+            // InternalTestgeneratorDSL.g:7108:2: rule__Loop__Group_17__0__Impl rule__Loop__Group_17__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__Loop__Group_17__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group_17__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_17__0"
+
+
+    // $ANTLR start "rule__Loop__Group_17__0__Impl"
+    // InternalTestgeneratorDSL.g:7115:1: rule__Loop__Group_17__0__Impl : ( ( rule__Loop__FrequenciesAssignment_17_0 ) ) ;
+    public final void rule__Loop__Group_17__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7119:1: ( ( ( rule__Loop__FrequenciesAssignment_17_0 ) ) )
+            // InternalTestgeneratorDSL.g:7120:1: ( ( rule__Loop__FrequenciesAssignment_17_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:7120:1: ( ( rule__Loop__FrequenciesAssignment_17_0 ) )
+            // InternalTestgeneratorDSL.g:7121:2: ( rule__Loop__FrequenciesAssignment_17_0 )
+            {
+             before(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_0()); 
+            // InternalTestgeneratorDSL.g:7122:2: ( rule__Loop__FrequenciesAssignment_17_0 )
+            // InternalTestgeneratorDSL.g:7122:3: rule__Loop__FrequenciesAssignment_17_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__FrequenciesAssignment_17_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_17__0__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group_17__1"
+    // InternalTestgeneratorDSL.g:7130:1: rule__Loop__Group_17__1 : rule__Loop__Group_17__1__Impl ;
+    public final void rule__Loop__Group_17__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7134:1: ( rule__Loop__Group_17__1__Impl )
+            // InternalTestgeneratorDSL.g:7135:2: rule__Loop__Group_17__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group_17__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_17__1"
+
+
+    // $ANTLR start "rule__Loop__Group_17__1__Impl"
+    // InternalTestgeneratorDSL.g:7141:1: rule__Loop__Group_17__1__Impl : ( ( rule__Loop__Group_17_1__0 )* ) ;
+    public final void rule__Loop__Group_17__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7145:1: ( ( ( rule__Loop__Group_17_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:7146:1: ( ( rule__Loop__Group_17_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:7146:1: ( ( rule__Loop__Group_17_1__0 )* )
+            // InternalTestgeneratorDSL.g:7147:2: ( rule__Loop__Group_17_1__0 )*
+            {
+             before(grammarAccess.getLoopAccess().getGroup_17_1()); 
+            // InternalTestgeneratorDSL.g:7148:2: ( rule__Loop__Group_17_1__0 )*
+            loop39:
+            do {
+                int alt39=2;
+                int LA39_0 = input.LA(1);
+
+                if ( (LA39_0==RULE_SEPARATOR) ) {
+                    alt39=1;
+                }
+
+
+                switch (alt39) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:7148:3: rule__Loop__Group_17_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__Loop__Group_17_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop39;
+                }
+            } while (true);
+
+             after(grammarAccess.getLoopAccess().getGroup_17_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_17__1__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group_17_1__0"
+    // InternalTestgeneratorDSL.g:7157:1: rule__Loop__Group_17_1__0 : rule__Loop__Group_17_1__0__Impl rule__Loop__Group_17_1__1 ;
+    public final void rule__Loop__Group_17_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7161:1: ( rule__Loop__Group_17_1__0__Impl rule__Loop__Group_17_1__1 )
+            // InternalTestgeneratorDSL.g:7162:2: rule__Loop__Group_17_1__0__Impl rule__Loop__Group_17_1__1
+            {
+            pushFollow(FOLLOW_37);
+            rule__Loop__Group_17_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group_17_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_17_1__0"
+
+
+    // $ANTLR start "rule__Loop__Group_17_1__0__Impl"
+    // InternalTestgeneratorDSL.g:7169:1: rule__Loop__Group_17_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__Loop__Group_17_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7173:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:7174:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:7174:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:7175:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getLoopAccess().getSEPARATORTerminalRuleCall_17_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getSEPARATORTerminalRuleCall_17_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_17_1__0__Impl"
+
+
+    // $ANTLR start "rule__Loop__Group_17_1__1"
+    // InternalTestgeneratorDSL.g:7184:1: rule__Loop__Group_17_1__1 : rule__Loop__Group_17_1__1__Impl ;
+    public final void rule__Loop__Group_17_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7188:1: ( rule__Loop__Group_17_1__1__Impl )
+            // InternalTestgeneratorDSL.g:7189:2: rule__Loop__Group_17_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__Group_17_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_17_1__1"
+
+
+    // $ANTLR start "rule__Loop__Group_17_1__1__Impl"
+    // InternalTestgeneratorDSL.g:7195:1: rule__Loop__Group_17_1__1__Impl : ( ( rule__Loop__FrequenciesAssignment_17_1_1 ) ) ;
+    public final void rule__Loop__Group_17_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7199:1: ( ( ( rule__Loop__FrequenciesAssignment_17_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:7200:1: ( ( rule__Loop__FrequenciesAssignment_17_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:7200:1: ( ( rule__Loop__FrequenciesAssignment_17_1_1 ) )
+            // InternalTestgeneratorDSL.g:7201:2: ( rule__Loop__FrequenciesAssignment_17_1_1 )
+            {
+             before(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_1_1()); 
+            // InternalTestgeneratorDSL.g:7202:2: ( rule__Loop__FrequenciesAssignment_17_1_1 )
+            // InternalTestgeneratorDSL.g:7202:3: rule__Loop__FrequenciesAssignment_17_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Loop__FrequenciesAssignment_17_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getLoopAccess().getFrequenciesAssignment_17_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__Group_17_1__1__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__0"
+    // InternalTestgeneratorDSL.g:7211:1: rule__Flow__Group__0 : rule__Flow__Group__0__Impl rule__Flow__Group__1 ;
+    public final void rule__Flow__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7215:1: ( rule__Flow__Group__0__Impl rule__Flow__Group__1 )
+            // InternalTestgeneratorDSL.g:7216:2: rule__Flow__Group__0__Impl rule__Flow__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Flow__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__0"
+
+
+    // $ANTLR start "rule__Flow__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:7223:1: rule__Flow__Group__0__Impl : ( 'Flow' ) ;
+    public final void rule__Flow__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7227:1: ( ( 'Flow' ) )
+            // InternalTestgeneratorDSL.g:7228:1: ( 'Flow' )
+            {
+            // InternalTestgeneratorDSL.g:7228:1: ( 'Flow' )
+            // InternalTestgeneratorDSL.g:7229:2: 'Flow'
+            {
+             before(grammarAccess.getFlowAccess().getFlowKeyword_0()); 
+            match(input,60,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getFlowKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__1"
+    // InternalTestgeneratorDSL.g:7238:1: rule__Flow__Group__1 : rule__Flow__Group__1__Impl rule__Flow__Group__2 ;
+    public final void rule__Flow__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7242:1: ( rule__Flow__Group__1__Impl rule__Flow__Group__2 )
+            // InternalTestgeneratorDSL.g:7243:2: rule__Flow__Group__1__Impl rule__Flow__Group__2
+            {
+            pushFollow(FOLLOW_47);
+            rule__Flow__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__1"
+
+
+    // $ANTLR start "rule__Flow__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:7250:1: rule__Flow__Group__1__Impl : ( ( rule__Flow__NameAssignment_1 ) ) ;
+    public final void rule__Flow__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7254:1: ( ( ( rule__Flow__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:7255:1: ( ( rule__Flow__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:7255:1: ( ( rule__Flow__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:7256:2: ( rule__Flow__NameAssignment_1 )
+            {
+             before(grammarAccess.getFlowAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:7257:2: ( rule__Flow__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:7257:3: rule__Flow__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__2"
+    // InternalTestgeneratorDSL.g:7265:1: rule__Flow__Group__2 : rule__Flow__Group__2__Impl rule__Flow__Group__3 ;
+    public final void rule__Flow__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7269:1: ( rule__Flow__Group__2__Impl rule__Flow__Group__3 )
+            // InternalTestgeneratorDSL.g:7270:2: rule__Flow__Group__2__Impl rule__Flow__Group__3
+            {
+            pushFollow(FOLLOW_4);
+            rule__Flow__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__2"
+
+
+    // $ANTLR start "rule__Flow__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:7277:1: rule__Flow__Group__2__Impl : ( 'for' ) ;
+    public final void rule__Flow__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7281:1: ( ( 'for' ) )
+            // InternalTestgeneratorDSL.g:7282:1: ( 'for' )
+            {
+            // InternalTestgeneratorDSL.g:7282:1: ( 'for' )
+            // InternalTestgeneratorDSL.g:7283:2: 'for'
+            {
+             before(grammarAccess.getFlowAccess().getForKeyword_2()); 
+            match(input,61,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getForKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__3"
+    // InternalTestgeneratorDSL.g:7292:1: rule__Flow__Group__3 : rule__Flow__Group__3__Impl rule__Flow__Group__4 ;
+    public final void rule__Flow__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7296:1: ( rule__Flow__Group__3__Impl rule__Flow__Group__4 )
+            // InternalTestgeneratorDSL.g:7297:2: rule__Flow__Group__3__Impl rule__Flow__Group__4
+            {
+            pushFollow(FOLLOW_5);
+            rule__Flow__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__3"
+
+
+    // $ANTLR start "rule__Flow__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:7304:1: rule__Flow__Group__3__Impl : ( ( rule__Flow__BpmnReferenceAssignment_3 ) ) ;
+    public final void rule__Flow__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7308:1: ( ( ( rule__Flow__BpmnReferenceAssignment_3 ) ) )
+            // InternalTestgeneratorDSL.g:7309:1: ( ( rule__Flow__BpmnReferenceAssignment_3 ) )
+            {
+            // InternalTestgeneratorDSL.g:7309:1: ( ( rule__Flow__BpmnReferenceAssignment_3 ) )
+            // InternalTestgeneratorDSL.g:7310:2: ( rule__Flow__BpmnReferenceAssignment_3 )
+            {
+             before(grammarAccess.getFlowAccess().getBpmnReferenceAssignment_3()); 
+            // InternalTestgeneratorDSL.g:7311:2: ( rule__Flow__BpmnReferenceAssignment_3 )
+            // InternalTestgeneratorDSL.g:7311:3: rule__Flow__BpmnReferenceAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__BpmnReferenceAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getBpmnReferenceAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__4"
+    // InternalTestgeneratorDSL.g:7319:1: rule__Flow__Group__4 : rule__Flow__Group__4__Impl rule__Flow__Group__5 ;
+    public final void rule__Flow__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7323:1: ( rule__Flow__Group__4__Impl rule__Flow__Group__5 )
+            // InternalTestgeneratorDSL.g:7324:2: rule__Flow__Group__4__Impl rule__Flow__Group__5
+            {
+            pushFollow(FOLLOW_48);
+            rule__Flow__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__4"
+
+
+    // $ANTLR start "rule__Flow__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:7331:1: rule__Flow__Group__4__Impl : ( 'with' ) ;
+    public final void rule__Flow__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7335:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:7336:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:7336:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:7337:2: 'with'
+            {
+             before(grammarAccess.getFlowAccess().getWithKeyword_4()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getWithKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__5"
+    // InternalTestgeneratorDSL.g:7346:1: rule__Flow__Group__5 : rule__Flow__Group__5__Impl rule__Flow__Group__6 ;
+    public final void rule__Flow__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7350:1: ( rule__Flow__Group__5__Impl rule__Flow__Group__6 )
+            // InternalTestgeneratorDSL.g:7351:2: rule__Flow__Group__5__Impl rule__Flow__Group__6
+            {
+            pushFollow(FOLLOW_12);
+            rule__Flow__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__5"
+
+
+    // $ANTLR start "rule__Flow__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:7358:1: rule__Flow__Group__5__Impl : ( 'elements' ) ;
+    public final void rule__Flow__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7362:1: ( ( 'elements' ) )
+            // InternalTestgeneratorDSL.g:7363:1: ( 'elements' )
+            {
+            // InternalTestgeneratorDSL.g:7363:1: ( 'elements' )
+            // InternalTestgeneratorDSL.g:7364:2: 'elements'
+            {
+             before(grammarAccess.getFlowAccess().getElementsKeyword_5()); 
+            match(input,62,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getElementsKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__6"
+    // InternalTestgeneratorDSL.g:7373:1: rule__Flow__Group__6 : rule__Flow__Group__6__Impl rule__Flow__Group__7 ;
+    public final void rule__Flow__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7377:1: ( rule__Flow__Group__6__Impl rule__Flow__Group__7 )
+            // InternalTestgeneratorDSL.g:7378:2: rule__Flow__Group__6__Impl rule__Flow__Group__7
+            {
+            pushFollow(FOLLOW_13);
+            rule__Flow__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__6"
+
+
+    // $ANTLR start "rule__Flow__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:7385:1: rule__Flow__Group__6__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__Flow__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7389:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:7390:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:7390:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:7391:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_6()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__7"
+    // InternalTestgeneratorDSL.g:7400:1: rule__Flow__Group__7 : rule__Flow__Group__7__Impl rule__Flow__Group__8 ;
+    public final void rule__Flow__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7404:1: ( rule__Flow__Group__7__Impl rule__Flow__Group__8 )
+            // InternalTestgeneratorDSL.g:7405:2: rule__Flow__Group__7__Impl rule__Flow__Group__8
+            {
+            pushFollow(FOLLOW_20);
+            rule__Flow__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__7"
+
+
+    // $ANTLR start "rule__Flow__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:7412:1: rule__Flow__Group__7__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__Flow__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7416:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:7417:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:7417:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:7418:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_7()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__8"
+    // InternalTestgeneratorDSL.g:7427:1: rule__Flow__Group__8 : rule__Flow__Group__8__Impl rule__Flow__Group__9 ;
+    public final void rule__Flow__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7431:1: ( rule__Flow__Group__8__Impl rule__Flow__Group__9 )
+            // InternalTestgeneratorDSL.g:7432:2: rule__Flow__Group__8__Impl rule__Flow__Group__9
+            {
+            pushFollow(FOLLOW_20);
+            rule__Flow__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__8"
+
+
+    // $ANTLR start "rule__Flow__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:7439:1: rule__Flow__Group__8__Impl : ( ( rule__Flow__Group_8__0 )? ) ;
+    public final void rule__Flow__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7443:1: ( ( ( rule__Flow__Group_8__0 )? ) )
+            // InternalTestgeneratorDSL.g:7444:1: ( ( rule__Flow__Group_8__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:7444:1: ( ( rule__Flow__Group_8__0 )? )
+            // InternalTestgeneratorDSL.g:7445:2: ( rule__Flow__Group_8__0 )?
+            {
+             before(grammarAccess.getFlowAccess().getGroup_8()); 
+            // InternalTestgeneratorDSL.g:7446:2: ( rule__Flow__Group_8__0 )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==RULE_ID) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:7446:3: rule__Flow__Group_8__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Flow__Group_8__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFlowAccess().getGroup_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__9"
+    // InternalTestgeneratorDSL.g:7454:1: rule__Flow__Group__9 : rule__Flow__Group__9__Impl rule__Flow__Group__10 ;
+    public final void rule__Flow__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7458:1: ( rule__Flow__Group__9__Impl rule__Flow__Group__10 )
+            // InternalTestgeneratorDSL.g:7459:2: rule__Flow__Group__9__Impl rule__Flow__Group__10
+            {
+            pushFollow(FOLLOW_49);
+            rule__Flow__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__9"
+
+
+    // $ANTLR start "rule__Flow__Group__9__Impl"
+    // InternalTestgeneratorDSL.g:7466:1: rule__Flow__Group__9__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__Flow__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7470:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:7471:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:7471:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:7472:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_9()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__9__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__10"
+    // InternalTestgeneratorDSL.g:7481:1: rule__Flow__Group__10 : rule__Flow__Group__10__Impl rule__Flow__Group__11 ;
+    public final void rule__Flow__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7485:1: ( rule__Flow__Group__10__Impl rule__Flow__Group__11 )
+            // InternalTestgeneratorDSL.g:7486:2: rule__Flow__Group__10__Impl rule__Flow__Group__11
+            {
+            pushFollow(FOLLOW_49);
+            rule__Flow__Group__10__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__11();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__10"
+
+
+    // $ANTLR start "rule__Flow__Group__10__Impl"
+    // InternalTestgeneratorDSL.g:7493:1: rule__Flow__Group__10__Impl : ( ( rule__Flow__Group_10__0 )? ) ;
+    public final void rule__Flow__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7497:1: ( ( ( rule__Flow__Group_10__0 )? ) )
+            // InternalTestgeneratorDSL.g:7498:1: ( ( rule__Flow__Group_10__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:7498:1: ( ( rule__Flow__Group_10__0 )? )
+            // InternalTestgeneratorDSL.g:7499:2: ( rule__Flow__Group_10__0 )?
+            {
+             before(grammarAccess.getFlowAccess().getGroup_10()); 
+            // InternalTestgeneratorDSL.g:7500:2: ( rule__Flow__Group_10__0 )?
+            int alt41=2;
+            int LA41_0 = input.LA(1);
+
+            if ( (LA41_0==63) ) {
+                alt41=1;
+            }
+            switch (alt41) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:7500:3: rule__Flow__Group_10__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Flow__Group_10__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFlowAccess().getGroup_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__10__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group__11"
+    // InternalTestgeneratorDSL.g:7508:1: rule__Flow__Group__11 : rule__Flow__Group__11__Impl ;
+    public final void rule__Flow__Group__11() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7512:1: ( rule__Flow__Group__11__Impl )
+            // InternalTestgeneratorDSL.g:7513:2: rule__Flow__Group__11__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group__11__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__11"
+
+
+    // $ANTLR start "rule__Flow__Group__11__Impl"
+    // InternalTestgeneratorDSL.g:7519:1: rule__Flow__Group__11__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__Flow__Group__11__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7523:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:7524:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:7524:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:7525:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getFlowAccess().getDECLARATION_FINISHEDTerminalRuleCall_11()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getDECLARATION_FINISHEDTerminalRuleCall_11()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group__11__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_8__0"
+    // InternalTestgeneratorDSL.g:7535:1: rule__Flow__Group_8__0 : rule__Flow__Group_8__0__Impl rule__Flow__Group_8__1 ;
+    public final void rule__Flow__Group_8__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7539:1: ( rule__Flow__Group_8__0__Impl rule__Flow__Group_8__1 )
+            // InternalTestgeneratorDSL.g:7540:2: rule__Flow__Group_8__0__Impl rule__Flow__Group_8__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__Flow__Group_8__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_8__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_8__0"
+
+
+    // $ANTLR start "rule__Flow__Group_8__0__Impl"
+    // InternalTestgeneratorDSL.g:7547:1: rule__Flow__Group_8__0__Impl : ( ( rule__Flow__InclElementsAssignment_8_0 ) ) ;
+    public final void rule__Flow__Group_8__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7551:1: ( ( ( rule__Flow__InclElementsAssignment_8_0 ) ) )
+            // InternalTestgeneratorDSL.g:7552:1: ( ( rule__Flow__InclElementsAssignment_8_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:7552:1: ( ( rule__Flow__InclElementsAssignment_8_0 ) )
+            // InternalTestgeneratorDSL.g:7553:2: ( rule__Flow__InclElementsAssignment_8_0 )
+            {
+             before(grammarAccess.getFlowAccess().getInclElementsAssignment_8_0()); 
+            // InternalTestgeneratorDSL.g:7554:2: ( rule__Flow__InclElementsAssignment_8_0 )
+            // InternalTestgeneratorDSL.g:7554:3: rule__Flow__InclElementsAssignment_8_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__InclElementsAssignment_8_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getInclElementsAssignment_8_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_8__0__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_8__1"
+    // InternalTestgeneratorDSL.g:7562:1: rule__Flow__Group_8__1 : rule__Flow__Group_8__1__Impl ;
+    public final void rule__Flow__Group_8__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7566:1: ( rule__Flow__Group_8__1__Impl )
+            // InternalTestgeneratorDSL.g:7567:2: rule__Flow__Group_8__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_8__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_8__1"
+
+
+    // $ANTLR start "rule__Flow__Group_8__1__Impl"
+    // InternalTestgeneratorDSL.g:7573:1: rule__Flow__Group_8__1__Impl : ( ( rule__Flow__Group_8_1__0 )* ) ;
+    public final void rule__Flow__Group_8__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7577:1: ( ( ( rule__Flow__Group_8_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:7578:1: ( ( rule__Flow__Group_8_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:7578:1: ( ( rule__Flow__Group_8_1__0 )* )
+            // InternalTestgeneratorDSL.g:7579:2: ( rule__Flow__Group_8_1__0 )*
+            {
+             before(grammarAccess.getFlowAccess().getGroup_8_1()); 
+            // InternalTestgeneratorDSL.g:7580:2: ( rule__Flow__Group_8_1__0 )*
+            loop42:
+            do {
+                int alt42=2;
+                int LA42_0 = input.LA(1);
+
+                if ( (LA42_0==RULE_SEPARATOR) ) {
+                    alt42=1;
+                }
+
+
+                switch (alt42) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:7580:3: rule__Flow__Group_8_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__Flow__Group_8_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop42;
+                }
+            } while (true);
+
+             after(grammarAccess.getFlowAccess().getGroup_8_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_8__1__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_8_1__0"
+    // InternalTestgeneratorDSL.g:7589:1: rule__Flow__Group_8_1__0 : rule__Flow__Group_8_1__0__Impl rule__Flow__Group_8_1__1 ;
+    public final void rule__Flow__Group_8_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7593:1: ( rule__Flow__Group_8_1__0__Impl rule__Flow__Group_8_1__1 )
+            // InternalTestgeneratorDSL.g:7594:2: rule__Flow__Group_8_1__0__Impl rule__Flow__Group_8_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Flow__Group_8_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_8_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_8_1__0"
+
+
+    // $ANTLR start "rule__Flow__Group_8_1__0__Impl"
+    // InternalTestgeneratorDSL.g:7601:1: rule__Flow__Group_8_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__Flow__Group_8_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7605:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:7606:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:7606:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:7607:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_8_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_8_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_8_1__0__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_8_1__1"
+    // InternalTestgeneratorDSL.g:7616:1: rule__Flow__Group_8_1__1 : rule__Flow__Group_8_1__1__Impl ;
+    public final void rule__Flow__Group_8_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7620:1: ( rule__Flow__Group_8_1__1__Impl )
+            // InternalTestgeneratorDSL.g:7621:2: rule__Flow__Group_8_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_8_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_8_1__1"
+
+
+    // $ANTLR start "rule__Flow__Group_8_1__1__Impl"
+    // InternalTestgeneratorDSL.g:7627:1: rule__Flow__Group_8_1__1__Impl : ( ( rule__Flow__InclElementsAssignment_8_1_1 ) ) ;
+    public final void rule__Flow__Group_8_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7631:1: ( ( ( rule__Flow__InclElementsAssignment_8_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:7632:1: ( ( rule__Flow__InclElementsAssignment_8_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:7632:1: ( ( rule__Flow__InclElementsAssignment_8_1_1 ) )
+            // InternalTestgeneratorDSL.g:7633:2: ( rule__Flow__InclElementsAssignment_8_1_1 )
+            {
+             before(grammarAccess.getFlowAccess().getInclElementsAssignment_8_1_1()); 
+            // InternalTestgeneratorDSL.g:7634:2: ( rule__Flow__InclElementsAssignment_8_1_1 )
+            // InternalTestgeneratorDSL.g:7634:3: rule__Flow__InclElementsAssignment_8_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__InclElementsAssignment_8_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getInclElementsAssignment_8_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_8_1__1__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10__0"
+    // InternalTestgeneratorDSL.g:7643:1: rule__Flow__Group_10__0 : rule__Flow__Group_10__0__Impl rule__Flow__Group_10__1 ;
+    public final void rule__Flow__Group_10__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7647:1: ( rule__Flow__Group_10__0__Impl rule__Flow__Group_10__1 )
+            // InternalTestgeneratorDSL.g:7648:2: rule__Flow__Group_10__0__Impl rule__Flow__Group_10__1
+            {
+            pushFollow(FOLLOW_48);
+            rule__Flow__Group_10__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__0"
+
+
+    // $ANTLR start "rule__Flow__Group_10__0__Impl"
+    // InternalTestgeneratorDSL.g:7655:1: rule__Flow__Group_10__0__Impl : ( 'without' ) ;
+    public final void rule__Flow__Group_10__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7659:1: ( ( 'without' ) )
+            // InternalTestgeneratorDSL.g:7660:1: ( 'without' )
+            {
+            // InternalTestgeneratorDSL.g:7660:1: ( 'without' )
+            // InternalTestgeneratorDSL.g:7661:2: 'without'
+            {
+             before(grammarAccess.getFlowAccess().getWithoutKeyword_10_0()); 
+            match(input,63,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getWithoutKeyword_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__0__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10__1"
+    // InternalTestgeneratorDSL.g:7670:1: rule__Flow__Group_10__1 : rule__Flow__Group_10__1__Impl rule__Flow__Group_10__2 ;
+    public final void rule__Flow__Group_10__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7674:1: ( rule__Flow__Group_10__1__Impl rule__Flow__Group_10__2 )
+            // InternalTestgeneratorDSL.g:7675:2: rule__Flow__Group_10__1__Impl rule__Flow__Group_10__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__Flow__Group_10__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__1"
+
+
+    // $ANTLR start "rule__Flow__Group_10__1__Impl"
+    // InternalTestgeneratorDSL.g:7682:1: rule__Flow__Group_10__1__Impl : ( 'elements' ) ;
+    public final void rule__Flow__Group_10__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7686:1: ( ( 'elements' ) )
+            // InternalTestgeneratorDSL.g:7687:1: ( 'elements' )
+            {
+            // InternalTestgeneratorDSL.g:7687:1: ( 'elements' )
+            // InternalTestgeneratorDSL.g:7688:2: 'elements'
+            {
+             before(grammarAccess.getFlowAccess().getElementsKeyword_10_1()); 
+            match(input,62,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getElementsKeyword_10_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__1__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10__2"
+    // InternalTestgeneratorDSL.g:7697:1: rule__Flow__Group_10__2 : rule__Flow__Group_10__2__Impl rule__Flow__Group_10__3 ;
+    public final void rule__Flow__Group_10__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7701:1: ( rule__Flow__Group_10__2__Impl rule__Flow__Group_10__3 )
+            // InternalTestgeneratorDSL.g:7702:2: rule__Flow__Group_10__2__Impl rule__Flow__Group_10__3
+            {
+            pushFollow(FOLLOW_13);
+            rule__Flow__Group_10__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__2"
+
+
+    // $ANTLR start "rule__Flow__Group_10__2__Impl"
+    // InternalTestgeneratorDSL.g:7709:1: rule__Flow__Group_10__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__Flow__Group_10__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7713:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:7714:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:7714:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:7715:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_10_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_10_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__2__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10__3"
+    // InternalTestgeneratorDSL.g:7724:1: rule__Flow__Group_10__3 : rule__Flow__Group_10__3__Impl rule__Flow__Group_10__4 ;
+    public final void rule__Flow__Group_10__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7728:1: ( rule__Flow__Group_10__3__Impl rule__Flow__Group_10__4 )
+            // InternalTestgeneratorDSL.g:7729:2: rule__Flow__Group_10__3__Impl rule__Flow__Group_10__4
+            {
+            pushFollow(FOLLOW_20);
+            rule__Flow__Group_10__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__3"
+
+
+    // $ANTLR start "rule__Flow__Group_10__3__Impl"
+    // InternalTestgeneratorDSL.g:7736:1: rule__Flow__Group_10__3__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__Flow__Group_10__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7740:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:7741:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:7741:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:7742:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_10_3()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_10_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__3__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10__4"
+    // InternalTestgeneratorDSL.g:7751:1: rule__Flow__Group_10__4 : rule__Flow__Group_10__4__Impl rule__Flow__Group_10__5 ;
+    public final void rule__Flow__Group_10__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7755:1: ( rule__Flow__Group_10__4__Impl rule__Flow__Group_10__5 )
+            // InternalTestgeneratorDSL.g:7756:2: rule__Flow__Group_10__4__Impl rule__Flow__Group_10__5
+            {
+            pushFollow(FOLLOW_20);
+            rule__Flow__Group_10__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__4"
+
+
+    // $ANTLR start "rule__Flow__Group_10__4__Impl"
+    // InternalTestgeneratorDSL.g:7763:1: rule__Flow__Group_10__4__Impl : ( ( rule__Flow__Group_10_4__0 )? ) ;
+    public final void rule__Flow__Group_10__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7767:1: ( ( ( rule__Flow__Group_10_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:7768:1: ( ( rule__Flow__Group_10_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:7768:1: ( ( rule__Flow__Group_10_4__0 )? )
+            // InternalTestgeneratorDSL.g:7769:2: ( rule__Flow__Group_10_4__0 )?
+            {
+             before(grammarAccess.getFlowAccess().getGroup_10_4()); 
+            // InternalTestgeneratorDSL.g:7770:2: ( rule__Flow__Group_10_4__0 )?
+            int alt43=2;
+            int LA43_0 = input.LA(1);
+
+            if ( (LA43_0==RULE_ID) ) {
+                alt43=1;
+            }
+            switch (alt43) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:7770:3: rule__Flow__Group_10_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Flow__Group_10_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getFlowAccess().getGroup_10_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__4__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10__5"
+    // InternalTestgeneratorDSL.g:7778:1: rule__Flow__Group_10__5 : rule__Flow__Group_10__5__Impl ;
+    public final void rule__Flow__Group_10__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7782:1: ( rule__Flow__Group_10__5__Impl )
+            // InternalTestgeneratorDSL.g:7783:2: rule__Flow__Group_10__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__5"
+
+
+    // $ANTLR start "rule__Flow__Group_10__5__Impl"
+    // InternalTestgeneratorDSL.g:7789:1: rule__Flow__Group_10__5__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__Flow__Group_10__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7793:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:7794:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:7794:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:7795:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_10_5()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_10_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10__5__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10_4__0"
+    // InternalTestgeneratorDSL.g:7805:1: rule__Flow__Group_10_4__0 : rule__Flow__Group_10_4__0__Impl rule__Flow__Group_10_4__1 ;
+    public final void rule__Flow__Group_10_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7809:1: ( rule__Flow__Group_10_4__0__Impl rule__Flow__Group_10_4__1 )
+            // InternalTestgeneratorDSL.g:7810:2: rule__Flow__Group_10_4__0__Impl rule__Flow__Group_10_4__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__Flow__Group_10_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10_4__0"
+
+
+    // $ANTLR start "rule__Flow__Group_10_4__0__Impl"
+    // InternalTestgeneratorDSL.g:7817:1: rule__Flow__Group_10_4__0__Impl : ( ( rule__Flow__ExclElementsAssignment_10_4_0 ) ) ;
+    public final void rule__Flow__Group_10_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7821:1: ( ( ( rule__Flow__ExclElementsAssignment_10_4_0 ) ) )
+            // InternalTestgeneratorDSL.g:7822:1: ( ( rule__Flow__ExclElementsAssignment_10_4_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:7822:1: ( ( rule__Flow__ExclElementsAssignment_10_4_0 ) )
+            // InternalTestgeneratorDSL.g:7823:2: ( rule__Flow__ExclElementsAssignment_10_4_0 )
+            {
+             before(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_0()); 
+            // InternalTestgeneratorDSL.g:7824:2: ( rule__Flow__ExclElementsAssignment_10_4_0 )
+            // InternalTestgeneratorDSL.g:7824:3: rule__Flow__ExclElementsAssignment_10_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__ExclElementsAssignment_10_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10_4__0__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10_4__1"
+    // InternalTestgeneratorDSL.g:7832:1: rule__Flow__Group_10_4__1 : rule__Flow__Group_10_4__1__Impl ;
+    public final void rule__Flow__Group_10_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7836:1: ( rule__Flow__Group_10_4__1__Impl )
+            // InternalTestgeneratorDSL.g:7837:2: rule__Flow__Group_10_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10_4__1"
+
+
+    // $ANTLR start "rule__Flow__Group_10_4__1__Impl"
+    // InternalTestgeneratorDSL.g:7843:1: rule__Flow__Group_10_4__1__Impl : ( ( rule__Flow__Group_10_4_1__0 )* ) ;
+    public final void rule__Flow__Group_10_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7847:1: ( ( ( rule__Flow__Group_10_4_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:7848:1: ( ( rule__Flow__Group_10_4_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:7848:1: ( ( rule__Flow__Group_10_4_1__0 )* )
+            // InternalTestgeneratorDSL.g:7849:2: ( rule__Flow__Group_10_4_1__0 )*
+            {
+             before(grammarAccess.getFlowAccess().getGroup_10_4_1()); 
+            // InternalTestgeneratorDSL.g:7850:2: ( rule__Flow__Group_10_4_1__0 )*
+            loop44:
+            do {
+                int alt44=2;
+                int LA44_0 = input.LA(1);
+
+                if ( (LA44_0==RULE_SEPARATOR) ) {
+                    alt44=1;
+                }
+
+
+                switch (alt44) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:7850:3: rule__Flow__Group_10_4_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__Flow__Group_10_4_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop44;
+                }
+            } while (true);
+
+             after(grammarAccess.getFlowAccess().getGroup_10_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10_4__1__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10_4_1__0"
+    // InternalTestgeneratorDSL.g:7859:1: rule__Flow__Group_10_4_1__0 : rule__Flow__Group_10_4_1__0__Impl rule__Flow__Group_10_4_1__1 ;
+    public final void rule__Flow__Group_10_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7863:1: ( rule__Flow__Group_10_4_1__0__Impl rule__Flow__Group_10_4_1__1 )
+            // InternalTestgeneratorDSL.g:7864:2: rule__Flow__Group_10_4_1__0__Impl rule__Flow__Group_10_4_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Flow__Group_10_4_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10_4_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10_4_1__0"
+
+
+    // $ANTLR start "rule__Flow__Group_10_4_1__0__Impl"
+    // InternalTestgeneratorDSL.g:7871:1: rule__Flow__Group_10_4_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__Flow__Group_10_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7875:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:7876:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:7876:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:7877:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_10_4_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_10_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__Flow__Group_10_4_1__1"
+    // InternalTestgeneratorDSL.g:7886:1: rule__Flow__Group_10_4_1__1 : rule__Flow__Group_10_4_1__1__Impl ;
+    public final void rule__Flow__Group_10_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7890:1: ( rule__Flow__Group_10_4_1__1__Impl )
+            // InternalTestgeneratorDSL.g:7891:2: rule__Flow__Group_10_4_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__Group_10_4_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10_4_1__1"
+
+
+    // $ANTLR start "rule__Flow__Group_10_4_1__1__Impl"
+    // InternalTestgeneratorDSL.g:7897:1: rule__Flow__Group_10_4_1__1__Impl : ( ( rule__Flow__ExclElementsAssignment_10_4_1_1 ) ) ;
+    public final void rule__Flow__Group_10_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7901:1: ( ( ( rule__Flow__ExclElementsAssignment_10_4_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:7902:1: ( ( rule__Flow__ExclElementsAssignment_10_4_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:7902:1: ( ( rule__Flow__ExclElementsAssignment_10_4_1_1 ) )
+            // InternalTestgeneratorDSL.g:7903:2: ( rule__Flow__ExclElementsAssignment_10_4_1_1 )
+            {
+             before(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_1_1()); 
+            // InternalTestgeneratorDSL.g:7904:2: ( rule__Flow__ExclElementsAssignment_10_4_1_1 )
+            // InternalTestgeneratorDSL.g:7904:3: rule__Flow__ExclElementsAssignment_10_4_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Flow__ExclElementsAssignment_10_4_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getFlowAccess().getExclElementsAssignment_10_4_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__Group_10_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__0"
+    // InternalTestgeneratorDSL.g:7913:1: rule__Test__Group__0 : rule__Test__Group__0__Impl rule__Test__Group__1 ;
+    public final void rule__Test__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7917:1: ( rule__Test__Group__0__Impl rule__Test__Group__1 )
+            // InternalTestgeneratorDSL.g:7918:2: rule__Test__Group__0__Impl rule__Test__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Test__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__0"
+
+
+    // $ANTLR start "rule__Test__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:7925:1: rule__Test__Group__0__Impl : ( 'Test' ) ;
+    public final void rule__Test__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7929:1: ( ( 'Test' ) )
+            // InternalTestgeneratorDSL.g:7930:1: ( 'Test' )
+            {
+            // InternalTestgeneratorDSL.g:7930:1: ( 'Test' )
+            // InternalTestgeneratorDSL.g:7931:2: 'Test'
+            {
+             before(grammarAccess.getTestAccess().getTestKeyword_0()); 
+            match(input,64,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getTestKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__0__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__1"
+    // InternalTestgeneratorDSL.g:7940:1: rule__Test__Group__1 : rule__Test__Group__1__Impl rule__Test__Group__2 ;
+    public final void rule__Test__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7944:1: ( rule__Test__Group__1__Impl rule__Test__Group__2 )
+            // InternalTestgeneratorDSL.g:7945:2: rule__Test__Group__1__Impl rule__Test__Group__2
+            {
+            pushFollow(FOLLOW_47);
+            rule__Test__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__1"
+
+
+    // $ANTLR start "rule__Test__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:7952:1: rule__Test__Group__1__Impl : ( ( rule__Test__NameAssignment_1 ) ) ;
+    public final void rule__Test__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7956:1: ( ( ( rule__Test__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:7957:1: ( ( rule__Test__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:7957:1: ( ( rule__Test__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:7958:2: ( rule__Test__NameAssignment_1 )
+            {
+             before(grammarAccess.getTestAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:7959:2: ( rule__Test__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:7959:3: rule__Test__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTestAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__1__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__2"
+    // InternalTestgeneratorDSL.g:7967:1: rule__Test__Group__2 : rule__Test__Group__2__Impl rule__Test__Group__3 ;
+    public final void rule__Test__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7971:1: ( rule__Test__Group__2__Impl rule__Test__Group__3 )
+            // InternalTestgeneratorDSL.g:7972:2: rule__Test__Group__2__Impl rule__Test__Group__3
+            {
+            pushFollow(FOLLOW_4);
+            rule__Test__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__2"
+
+
+    // $ANTLR start "rule__Test__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:7979:1: rule__Test__Group__2__Impl : ( 'for' ) ;
+    public final void rule__Test__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7983:1: ( ( 'for' ) )
+            // InternalTestgeneratorDSL.g:7984:1: ( 'for' )
+            {
+            // InternalTestgeneratorDSL.g:7984:1: ( 'for' )
+            // InternalTestgeneratorDSL.g:7985:2: 'for'
+            {
+             before(grammarAccess.getTestAccess().getForKeyword_2()); 
+            match(input,61,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getForKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__3"
+    // InternalTestgeneratorDSL.g:7994:1: rule__Test__Group__3 : rule__Test__Group__3__Impl rule__Test__Group__4 ;
+    public final void rule__Test__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:7998:1: ( rule__Test__Group__3__Impl rule__Test__Group__4 )
+            // InternalTestgeneratorDSL.g:7999:2: rule__Test__Group__3__Impl rule__Test__Group__4
+            {
+            pushFollow(FOLLOW_10);
+            rule__Test__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__3"
+
+
+    // $ANTLR start "rule__Test__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:8006:1: rule__Test__Group__3__Impl : ( ( rule__Test__FlowReferenceAssignment_3 ) ) ;
+    public final void rule__Test__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8010:1: ( ( ( rule__Test__FlowReferenceAssignment_3 ) ) )
+            // InternalTestgeneratorDSL.g:8011:1: ( ( rule__Test__FlowReferenceAssignment_3 ) )
+            {
+            // InternalTestgeneratorDSL.g:8011:1: ( ( rule__Test__FlowReferenceAssignment_3 ) )
+            // InternalTestgeneratorDSL.g:8012:2: ( rule__Test__FlowReferenceAssignment_3 )
+            {
+             before(grammarAccess.getTestAccess().getFlowReferenceAssignment_3()); 
+            // InternalTestgeneratorDSL.g:8013:2: ( rule__Test__FlowReferenceAssignment_3 )
+            // InternalTestgeneratorDSL.g:8013:3: rule__Test__FlowReferenceAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__FlowReferenceAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTestAccess().getFlowReferenceAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__3__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__4"
+    // InternalTestgeneratorDSL.g:8021:1: rule__Test__Group__4 : rule__Test__Group__4__Impl rule__Test__Group__5 ;
+    public final void rule__Test__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8025:1: ( rule__Test__Group__4__Impl rule__Test__Group__5 )
+            // InternalTestgeneratorDSL.g:8026:2: rule__Test__Group__4__Impl rule__Test__Group__5
+            {
+            pushFollow(FOLLOW_10);
+            rule__Test__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__4"
+
+
+    // $ANTLR start "rule__Test__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:8033:1: rule__Test__Group__4__Impl : ( ( rule__Test__Group_4__0 )? ) ;
+    public final void rule__Test__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8037:1: ( ( ( rule__Test__Group_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:8038:1: ( ( rule__Test__Group_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:8038:1: ( ( rule__Test__Group_4__0 )? )
+            // InternalTestgeneratorDSL.g:8039:2: ( rule__Test__Group_4__0 )?
+            {
+             before(grammarAccess.getTestAccess().getGroup_4()); 
+            // InternalTestgeneratorDSL.g:8040:2: ( rule__Test__Group_4__0 )?
+            int alt45=2;
+            int LA45_0 = input.LA(1);
+
+            if ( (LA45_0==25) ) {
+                int LA45_1 = input.LA(2);
+
+                if ( (LA45_1==65) ) {
+                    alt45=1;
+                }
+            }
+            switch (alt45) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:8040:3: rule__Test__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Test__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTestAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__4__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__5"
+    // InternalTestgeneratorDSL.g:8048:1: rule__Test__Group__5 : rule__Test__Group__5__Impl rule__Test__Group__6 ;
+    public final void rule__Test__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8052:1: ( rule__Test__Group__5__Impl rule__Test__Group__6 )
+            // InternalTestgeneratorDSL.g:8053:2: rule__Test__Group__5__Impl rule__Test__Group__6
+            {
+            pushFollow(FOLLOW_10);
+            rule__Test__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__5"
+
+
+    // $ANTLR start "rule__Test__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:8060:1: rule__Test__Group__5__Impl : ( ( rule__Test__Group_5__0 )? ) ;
+    public final void rule__Test__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8064:1: ( ( ( rule__Test__Group_5__0 )? ) )
+            // InternalTestgeneratorDSL.g:8065:1: ( ( rule__Test__Group_5__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:8065:1: ( ( rule__Test__Group_5__0 )? )
+            // InternalTestgeneratorDSL.g:8066:2: ( rule__Test__Group_5__0 )?
+            {
+             before(grammarAccess.getTestAccess().getGroup_5()); 
+            // InternalTestgeneratorDSL.g:8067:2: ( rule__Test__Group_5__0 )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==25) ) {
+                int LA46_1 = input.LA(2);
+
+                if ( (LA46_1==67) ) {
+                    alt46=1;
+                }
+            }
+            switch (alt46) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:8067:3: rule__Test__Group_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Test__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTestAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__5__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__6"
+    // InternalTestgeneratorDSL.g:8075:1: rule__Test__Group__6 : rule__Test__Group__6__Impl rule__Test__Group__7 ;
+    public final void rule__Test__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8079:1: ( rule__Test__Group__6__Impl rule__Test__Group__7 )
+            // InternalTestgeneratorDSL.g:8080:2: rule__Test__Group__6__Impl rule__Test__Group__7
+            {
+            pushFollow(FOLLOW_10);
+            rule__Test__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__6"
+
+
+    // $ANTLR start "rule__Test__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:8087:1: rule__Test__Group__6__Impl : ( ( rule__Test__EndCheckAssignment_6 )? ) ;
+    public final void rule__Test__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8091:1: ( ( ( rule__Test__EndCheckAssignment_6 )? ) )
+            // InternalTestgeneratorDSL.g:8092:1: ( ( rule__Test__EndCheckAssignment_6 )? )
+            {
+            // InternalTestgeneratorDSL.g:8092:1: ( ( rule__Test__EndCheckAssignment_6 )? )
+            // InternalTestgeneratorDSL.g:8093:2: ( rule__Test__EndCheckAssignment_6 )?
+            {
+             before(grammarAccess.getTestAccess().getEndCheckAssignment_6()); 
+            // InternalTestgeneratorDSL.g:8094:2: ( rule__Test__EndCheckAssignment_6 )?
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( (LA47_0==25) ) {
+                int LA47_1 = input.LA(2);
+
+                if ( (LA47_1==68) ) {
+                    alt47=1;
+                }
+            }
+            switch (alt47) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:8094:3: rule__Test__EndCheckAssignment_6
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Test__EndCheckAssignment_6();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTestAccess().getEndCheckAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__6__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__7"
+    // InternalTestgeneratorDSL.g:8102:1: rule__Test__Group__7 : rule__Test__Group__7__Impl rule__Test__Group__8 ;
+    public final void rule__Test__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8106:1: ( rule__Test__Group__7__Impl rule__Test__Group__8 )
+            // InternalTestgeneratorDSL.g:8107:2: rule__Test__Group__7__Impl rule__Test__Group__8
+            {
+            pushFollow(FOLLOW_10);
+            rule__Test__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__7"
+
+
+    // $ANTLR start "rule__Test__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:8114:1: rule__Test__Group__7__Impl : ( ( rule__Test__Group_7__0 )? ) ;
+    public final void rule__Test__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8118:1: ( ( ( rule__Test__Group_7__0 )? ) )
+            // InternalTestgeneratorDSL.g:8119:1: ( ( rule__Test__Group_7__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:8119:1: ( ( rule__Test__Group_7__0 )? )
+            // InternalTestgeneratorDSL.g:8120:2: ( rule__Test__Group_7__0 )?
+            {
+             before(grammarAccess.getTestAccess().getGroup_7()); 
+            // InternalTestgeneratorDSL.g:8121:2: ( rule__Test__Group_7__0 )?
+            int alt48=2;
+            int LA48_0 = input.LA(1);
+
+            if ( (LA48_0==25) ) {
+                alt48=1;
+            }
+            switch (alt48) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:8121:3: rule__Test__Group_7__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Test__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTestAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__7__Impl"
+
+
+    // $ANTLR start "rule__Test__Group__8"
+    // InternalTestgeneratorDSL.g:8129:1: rule__Test__Group__8 : rule__Test__Group__8__Impl ;
+    public final void rule__Test__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8133:1: ( rule__Test__Group__8__Impl )
+            // InternalTestgeneratorDSL.g:8134:2: rule__Test__Group__8__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__8"
+
+
+    // $ANTLR start "rule__Test__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:8140:1: rule__Test__Group__8__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__Test__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8144:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:8145:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:8145:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:8146:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getTestAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group__8__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_4__0"
+    // InternalTestgeneratorDSL.g:8156:1: rule__Test__Group_4__0 : rule__Test__Group_4__0__Impl rule__Test__Group_4__1 ;
+    public final void rule__Test__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8160:1: ( rule__Test__Group_4__0__Impl rule__Test__Group_4__1 )
+            // InternalTestgeneratorDSL.g:8161:2: rule__Test__Group_4__0__Impl rule__Test__Group_4__1
+            {
+            pushFollow(FOLLOW_50);
+            rule__Test__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_4__0"
+
+
+    // $ANTLR start "rule__Test__Group_4__0__Impl"
+    // InternalTestgeneratorDSL.g:8168:1: rule__Test__Group_4__0__Impl : ( 'with' ) ;
+    public final void rule__Test__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8172:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:8173:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:8173:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:8174:2: 'with'
+            {
+             before(grammarAccess.getTestAccess().getWithKeyword_4_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getWithKeyword_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_4__1"
+    // InternalTestgeneratorDSL.g:8183:1: rule__Test__Group_4__1 : rule__Test__Group_4__1__Impl rule__Test__Group_4__2 ;
+    public final void rule__Test__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8187:1: ( rule__Test__Group_4__1__Impl rule__Test__Group_4__2 )
+            // InternalTestgeneratorDSL.g:8188:2: rule__Test__Group_4__1__Impl rule__Test__Group_4__2
+            {
+            pushFollow(FOLLOW_37);
+            rule__Test__Group_4__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_4__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_4__1"
+
+
+    // $ANTLR start "rule__Test__Group_4__1__Impl"
+    // InternalTestgeneratorDSL.g:8195:1: rule__Test__Group_4__1__Impl : ( 'priority' ) ;
+    public final void rule__Test__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8199:1: ( ( 'priority' ) )
+            // InternalTestgeneratorDSL.g:8200:1: ( 'priority' )
+            {
+            // InternalTestgeneratorDSL.g:8200:1: ( 'priority' )
+            // InternalTestgeneratorDSL.g:8201:2: 'priority'
+            {
+             before(grammarAccess.getTestAccess().getPriorityKeyword_4_1()); 
+            match(input,65,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getPriorityKeyword_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_4__2"
+    // InternalTestgeneratorDSL.g:8210:1: rule__Test__Group_4__2 : rule__Test__Group_4__2__Impl ;
+    public final void rule__Test__Group_4__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8214:1: ( rule__Test__Group_4__2__Impl )
+            // InternalTestgeneratorDSL.g:8215:2: rule__Test__Group_4__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_4__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_4__2"
+
+
+    // $ANTLR start "rule__Test__Group_4__2__Impl"
+    // InternalTestgeneratorDSL.g:8221:1: rule__Test__Group_4__2__Impl : ( ( rule__Test__PriorityAssignment_4_2 ) ) ;
+    public final void rule__Test__Group_4__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8225:1: ( ( ( rule__Test__PriorityAssignment_4_2 ) ) )
+            // InternalTestgeneratorDSL.g:8226:1: ( ( rule__Test__PriorityAssignment_4_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:8226:1: ( ( rule__Test__PriorityAssignment_4_2 ) )
+            // InternalTestgeneratorDSL.g:8227:2: ( rule__Test__PriorityAssignment_4_2 )
+            {
+             before(grammarAccess.getTestAccess().getPriorityAssignment_4_2()); 
+            // InternalTestgeneratorDSL.g:8228:2: ( rule__Test__PriorityAssignment_4_2 )
+            // InternalTestgeneratorDSL.g:8228:3: rule__Test__PriorityAssignment_4_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__PriorityAssignment_4_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTestAccess().getPriorityAssignment_4_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_4__2__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_5__0"
+    // InternalTestgeneratorDSL.g:8237:1: rule__Test__Group_5__0 : rule__Test__Group_5__0__Impl rule__Test__Group_5__1 ;
+    public final void rule__Test__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8241:1: ( rule__Test__Group_5__0__Impl rule__Test__Group_5__1 )
+            // InternalTestgeneratorDSL.g:8242:2: rule__Test__Group_5__0__Impl rule__Test__Group_5__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__Test__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_5__0"
+
+
+    // $ANTLR start "rule__Test__Group_5__0__Impl"
+    // InternalTestgeneratorDSL.g:8249:1: rule__Test__Group_5__0__Impl : ( ( rule__Test__DeclarationsAssignment_5_0 ) ) ;
+    public final void rule__Test__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8253:1: ( ( ( rule__Test__DeclarationsAssignment_5_0 ) ) )
+            // InternalTestgeneratorDSL.g:8254:1: ( ( rule__Test__DeclarationsAssignment_5_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:8254:1: ( ( rule__Test__DeclarationsAssignment_5_0 ) )
+            // InternalTestgeneratorDSL.g:8255:2: ( rule__Test__DeclarationsAssignment_5_0 )
+            {
+             before(grammarAccess.getTestAccess().getDeclarationsAssignment_5_0()); 
+            // InternalTestgeneratorDSL.g:8256:2: ( rule__Test__DeclarationsAssignment_5_0 )
+            // InternalTestgeneratorDSL.g:8256:3: rule__Test__DeclarationsAssignment_5_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__DeclarationsAssignment_5_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTestAccess().getDeclarationsAssignment_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_5__1"
+    // InternalTestgeneratorDSL.g:8264:1: rule__Test__Group_5__1 : rule__Test__Group_5__1__Impl ;
+    public final void rule__Test__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8268:1: ( rule__Test__Group_5__1__Impl )
+            // InternalTestgeneratorDSL.g:8269:2: rule__Test__Group_5__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_5__1"
+
+
+    // $ANTLR start "rule__Test__Group_5__1__Impl"
+    // InternalTestgeneratorDSL.g:8275:1: rule__Test__Group_5__1__Impl : ( ( rule__Test__Group_5_1__0 )* ) ;
+    public final void rule__Test__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8279:1: ( ( ( rule__Test__Group_5_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:8280:1: ( ( rule__Test__Group_5_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:8280:1: ( ( rule__Test__Group_5_1__0 )* )
+            // InternalTestgeneratorDSL.g:8281:2: ( rule__Test__Group_5_1__0 )*
+            {
+             before(grammarAccess.getTestAccess().getGroup_5_1()); 
+            // InternalTestgeneratorDSL.g:8282:2: ( rule__Test__Group_5_1__0 )*
+            loop49:
+            do {
+                int alt49=2;
+                int LA49_0 = input.LA(1);
+
+                if ( (LA49_0==RULE_SEPARATOR) ) {
+                    alt49=1;
+                }
+
+
+                switch (alt49) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:8282:3: rule__Test__Group_5_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__Test__Group_5_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop49;
+                }
+            } while (true);
+
+             after(grammarAccess.getTestAccess().getGroup_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_5_1__0"
+    // InternalTestgeneratorDSL.g:8291:1: rule__Test__Group_5_1__0 : rule__Test__Group_5_1__0__Impl rule__Test__Group_5_1__1 ;
+    public final void rule__Test__Group_5_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8295:1: ( rule__Test__Group_5_1__0__Impl rule__Test__Group_5_1__1 )
+            // InternalTestgeneratorDSL.g:8296:2: rule__Test__Group_5_1__0__Impl rule__Test__Group_5_1__1
+            {
+            pushFollow(FOLLOW_5);
+            rule__Test__Group_5_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_5_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_5_1__0"
+
+
+    // $ANTLR start "rule__Test__Group_5_1__0__Impl"
+    // InternalTestgeneratorDSL.g:8303:1: rule__Test__Group_5_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__Test__Group_5_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8307:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:8308:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:8308:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:8309:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_5_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_5_1__0__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_5_1__1"
+    // InternalTestgeneratorDSL.g:8318:1: rule__Test__Group_5_1__1 : rule__Test__Group_5_1__1__Impl ;
+    public final void rule__Test__Group_5_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8322:1: ( rule__Test__Group_5_1__1__Impl )
+            // InternalTestgeneratorDSL.g:8323:2: rule__Test__Group_5_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_5_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_5_1__1"
+
+
+    // $ANTLR start "rule__Test__Group_5_1__1__Impl"
+    // InternalTestgeneratorDSL.g:8329:1: rule__Test__Group_5_1__1__Impl : ( ( rule__Test__DeclarationsAssignment_5_1_1 ) ) ;
+    public final void rule__Test__Group_5_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8333:1: ( ( ( rule__Test__DeclarationsAssignment_5_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:8334:1: ( ( rule__Test__DeclarationsAssignment_5_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:8334:1: ( ( rule__Test__DeclarationsAssignment_5_1_1 ) )
+            // InternalTestgeneratorDSL.g:8335:2: ( rule__Test__DeclarationsAssignment_5_1_1 )
+            {
+             before(grammarAccess.getTestAccess().getDeclarationsAssignment_5_1_1()); 
+            // InternalTestgeneratorDSL.g:8336:2: ( rule__Test__DeclarationsAssignment_5_1_1 )
+            // InternalTestgeneratorDSL.g:8336:3: rule__Test__DeclarationsAssignment_5_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__DeclarationsAssignment_5_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTestAccess().getDeclarationsAssignment_5_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_5_1__1__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7__0"
+    // InternalTestgeneratorDSL.g:8345:1: rule__Test__Group_7__0 : rule__Test__Group_7__0__Impl rule__Test__Group_7__1 ;
+    public final void rule__Test__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8349:1: ( rule__Test__Group_7__0__Impl rule__Test__Group_7__1 )
+            // InternalTestgeneratorDSL.g:8350:2: rule__Test__Group_7__0__Impl rule__Test__Group_7__1
+            {
+            pushFollow(FOLLOW_51);
+            rule__Test__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__0"
+
+
+    // $ANTLR start "rule__Test__Group_7__0__Impl"
+    // InternalTestgeneratorDSL.g:8357:1: rule__Test__Group_7__0__Impl : ( 'with' ) ;
+    public final void rule__Test__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8361:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:8362:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:8362:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:8363:2: 'with'
+            {
+             before(grammarAccess.getTestAccess().getWithKeyword_7_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getWithKeyword_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7__1"
+    // InternalTestgeneratorDSL.g:8372:1: rule__Test__Group_7__1 : rule__Test__Group_7__1__Impl rule__Test__Group_7__2 ;
+    public final void rule__Test__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8376:1: ( rule__Test__Group_7__1__Impl rule__Test__Group_7__2 )
+            // InternalTestgeneratorDSL.g:8377:2: rule__Test__Group_7__1__Impl rule__Test__Group_7__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__Test__Group_7__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__1"
+
+
+    // $ANTLR start "rule__Test__Group_7__1__Impl"
+    // InternalTestgeneratorDSL.g:8384:1: rule__Test__Group_7__1__Impl : ( 'mocks' ) ;
+    public final void rule__Test__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8388:1: ( ( 'mocks' ) )
+            // InternalTestgeneratorDSL.g:8389:1: ( 'mocks' )
+            {
+            // InternalTestgeneratorDSL.g:8389:1: ( 'mocks' )
+            // InternalTestgeneratorDSL.g:8390:2: 'mocks'
+            {
+             before(grammarAccess.getTestAccess().getMocksKeyword_7_1()); 
+            match(input,66,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getMocksKeyword_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7__2"
+    // InternalTestgeneratorDSL.g:8399:1: rule__Test__Group_7__2 : rule__Test__Group_7__2__Impl rule__Test__Group_7__3 ;
+    public final void rule__Test__Group_7__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8403:1: ( rule__Test__Group_7__2__Impl rule__Test__Group_7__3 )
+            // InternalTestgeneratorDSL.g:8404:2: rule__Test__Group_7__2__Impl rule__Test__Group_7__3
+            {
+            pushFollow(FOLLOW_13);
+            rule__Test__Group_7__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__2"
+
+
+    // $ANTLR start "rule__Test__Group_7__2__Impl"
+    // InternalTestgeneratorDSL.g:8411:1: rule__Test__Group_7__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__Test__Group_7__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8415:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:8416:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:8416:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:8417:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getTestAccess().getASSOCIATIONTerminalRuleCall_7_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getASSOCIATIONTerminalRuleCall_7_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__2__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7__3"
+    // InternalTestgeneratorDSL.g:8426:1: rule__Test__Group_7__3 : rule__Test__Group_7__3__Impl rule__Test__Group_7__4 ;
+    public final void rule__Test__Group_7__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8430:1: ( rule__Test__Group_7__3__Impl rule__Test__Group_7__4 )
+            // InternalTestgeneratorDSL.g:8431:2: rule__Test__Group_7__3__Impl rule__Test__Group_7__4
+            {
+            pushFollow(FOLLOW_20);
+            rule__Test__Group_7__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__3"
+
+
+    // $ANTLR start "rule__Test__Group_7__3__Impl"
+    // InternalTestgeneratorDSL.g:8438:1: rule__Test__Group_7__3__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__Test__Group_7__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8442:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:8443:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:8443:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:8444:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getTestAccess().getLIST_OPENTerminalRuleCall_7_3()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getLIST_OPENTerminalRuleCall_7_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__3__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7__4"
+    // InternalTestgeneratorDSL.g:8453:1: rule__Test__Group_7__4 : rule__Test__Group_7__4__Impl rule__Test__Group_7__5 ;
+    public final void rule__Test__Group_7__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8457:1: ( rule__Test__Group_7__4__Impl rule__Test__Group_7__5 )
+            // InternalTestgeneratorDSL.g:8458:2: rule__Test__Group_7__4__Impl rule__Test__Group_7__5
+            {
+            pushFollow(FOLLOW_20);
+            rule__Test__Group_7__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__4"
+
+
+    // $ANTLR start "rule__Test__Group_7__4__Impl"
+    // InternalTestgeneratorDSL.g:8465:1: rule__Test__Group_7__4__Impl : ( ( rule__Test__Group_7_4__0 )? ) ;
+    public final void rule__Test__Group_7__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8469:1: ( ( ( rule__Test__Group_7_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:8470:1: ( ( rule__Test__Group_7_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:8470:1: ( ( rule__Test__Group_7_4__0 )? )
+            // InternalTestgeneratorDSL.g:8471:2: ( rule__Test__Group_7_4__0 )?
+            {
+             before(grammarAccess.getTestAccess().getGroup_7_4()); 
+            // InternalTestgeneratorDSL.g:8472:2: ( rule__Test__Group_7_4__0 )?
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==RULE_ID) ) {
+                alt50=1;
+            }
+            switch (alt50) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:8472:3: rule__Test__Group_7_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__Test__Group_7_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTestAccess().getGroup_7_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__4__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7__5"
+    // InternalTestgeneratorDSL.g:8480:1: rule__Test__Group_7__5 : rule__Test__Group_7__5__Impl ;
+    public final void rule__Test__Group_7__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8484:1: ( rule__Test__Group_7__5__Impl )
+            // InternalTestgeneratorDSL.g:8485:2: rule__Test__Group_7__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__5"
+
+
+    // $ANTLR start "rule__Test__Group_7__5__Impl"
+    // InternalTestgeneratorDSL.g:8491:1: rule__Test__Group_7__5__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__Test__Group_7__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8495:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:8496:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:8496:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:8497:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getTestAccess().getLIST_CLOSEDTerminalRuleCall_7_5()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getLIST_CLOSEDTerminalRuleCall_7_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7__5__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7_4__0"
+    // InternalTestgeneratorDSL.g:8507:1: rule__Test__Group_7_4__0 : rule__Test__Group_7_4__0__Impl rule__Test__Group_7_4__1 ;
+    public final void rule__Test__Group_7_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8511:1: ( rule__Test__Group_7_4__0__Impl rule__Test__Group_7_4__1 )
+            // InternalTestgeneratorDSL.g:8512:2: rule__Test__Group_7_4__0__Impl rule__Test__Group_7_4__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__Test__Group_7_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7_4__0"
+
+
+    // $ANTLR start "rule__Test__Group_7_4__0__Impl"
+    // InternalTestgeneratorDSL.g:8519:1: rule__Test__Group_7_4__0__Impl : ( ( rule__Test__MocksAssignment_7_4_0 ) ) ;
+    public final void rule__Test__Group_7_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8523:1: ( ( ( rule__Test__MocksAssignment_7_4_0 ) ) )
+            // InternalTestgeneratorDSL.g:8524:1: ( ( rule__Test__MocksAssignment_7_4_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:8524:1: ( ( rule__Test__MocksAssignment_7_4_0 ) )
+            // InternalTestgeneratorDSL.g:8525:2: ( rule__Test__MocksAssignment_7_4_0 )
+            {
+             before(grammarAccess.getTestAccess().getMocksAssignment_7_4_0()); 
+            // InternalTestgeneratorDSL.g:8526:2: ( rule__Test__MocksAssignment_7_4_0 )
+            // InternalTestgeneratorDSL.g:8526:3: rule__Test__MocksAssignment_7_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__MocksAssignment_7_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTestAccess().getMocksAssignment_7_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7_4__0__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7_4__1"
+    // InternalTestgeneratorDSL.g:8534:1: rule__Test__Group_7_4__1 : rule__Test__Group_7_4__1__Impl ;
+    public final void rule__Test__Group_7_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8538:1: ( rule__Test__Group_7_4__1__Impl )
+            // InternalTestgeneratorDSL.g:8539:2: rule__Test__Group_7_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7_4__1"
+
+
+    // $ANTLR start "rule__Test__Group_7_4__1__Impl"
+    // InternalTestgeneratorDSL.g:8545:1: rule__Test__Group_7_4__1__Impl : ( ( rule__Test__Group_7_4_1__0 )* ) ;
+    public final void rule__Test__Group_7_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8549:1: ( ( ( rule__Test__Group_7_4_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:8550:1: ( ( rule__Test__Group_7_4_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:8550:1: ( ( rule__Test__Group_7_4_1__0 )* )
+            // InternalTestgeneratorDSL.g:8551:2: ( rule__Test__Group_7_4_1__0 )*
+            {
+             before(grammarAccess.getTestAccess().getGroup_7_4_1()); 
+            // InternalTestgeneratorDSL.g:8552:2: ( rule__Test__Group_7_4_1__0 )*
+            loop51:
+            do {
+                int alt51=2;
+                int LA51_0 = input.LA(1);
+
+                if ( (LA51_0==RULE_SEPARATOR) ) {
+                    alt51=1;
+                }
+
+
+                switch (alt51) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:8552:3: rule__Test__Group_7_4_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__Test__Group_7_4_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop51;
+                }
+            } while (true);
+
+             after(grammarAccess.getTestAccess().getGroup_7_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7_4__1__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7_4_1__0"
+    // InternalTestgeneratorDSL.g:8561:1: rule__Test__Group_7_4_1__0 : rule__Test__Group_7_4_1__0__Impl rule__Test__Group_7_4_1__1 ;
+    public final void rule__Test__Group_7_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8565:1: ( rule__Test__Group_7_4_1__0__Impl rule__Test__Group_7_4_1__1 )
+            // InternalTestgeneratorDSL.g:8566:2: rule__Test__Group_7_4_1__0__Impl rule__Test__Group_7_4_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__Test__Group_7_4_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7_4_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7_4_1__0"
+
+
+    // $ANTLR start "rule__Test__Group_7_4_1__0__Impl"
+    // InternalTestgeneratorDSL.g:8573:1: rule__Test__Group_7_4_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__Test__Group_7_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8577:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:8578:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:8578:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:8579:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_7_4_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_7_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__Test__Group_7_4_1__1"
+    // InternalTestgeneratorDSL.g:8588:1: rule__Test__Group_7_4_1__1 : rule__Test__Group_7_4_1__1__Impl ;
+    public final void rule__Test__Group_7_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8592:1: ( rule__Test__Group_7_4_1__1__Impl )
+            // InternalTestgeneratorDSL.g:8593:2: rule__Test__Group_7_4_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__Group_7_4_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7_4_1__1"
+
+
+    // $ANTLR start "rule__Test__Group_7_4_1__1__Impl"
+    // InternalTestgeneratorDSL.g:8599:1: rule__Test__Group_7_4_1__1__Impl : ( ( rule__Test__MocksAssignment_7_4_1_1 ) ) ;
+    public final void rule__Test__Group_7_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8603:1: ( ( ( rule__Test__MocksAssignment_7_4_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:8604:1: ( ( rule__Test__MocksAssignment_7_4_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:8604:1: ( ( rule__Test__MocksAssignment_7_4_1_1 ) )
+            // InternalTestgeneratorDSL.g:8605:2: ( rule__Test__MocksAssignment_7_4_1_1 )
+            {
+             before(grammarAccess.getTestAccess().getMocksAssignment_7_4_1_1()); 
+            // InternalTestgeneratorDSL.g:8606:2: ( rule__Test__MocksAssignment_7_4_1_1 )
+            // InternalTestgeneratorDSL.g:8606:3: rule__Test__MocksAssignment_7_4_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__Test__MocksAssignment_7_4_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTestAccess().getMocksAssignment_7_4_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__Group_7_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__0"
+    // InternalTestgeneratorDSL.g:8615:1: rule__VariableDeclarations__Group__0 : rule__VariableDeclarations__Group__0__Impl rule__VariableDeclarations__Group__1 ;
+    public final void rule__VariableDeclarations__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8619:1: ( rule__VariableDeclarations__Group__0__Impl rule__VariableDeclarations__Group__1 )
+            // InternalTestgeneratorDSL.g:8620:2: rule__VariableDeclarations__Group__0__Impl rule__VariableDeclarations__Group__1
+            {
+            pushFollow(FOLLOW_52);
+            rule__VariableDeclarations__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__0"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:8627:1: rule__VariableDeclarations__Group__0__Impl : ( 'with' ) ;
+    public final void rule__VariableDeclarations__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8631:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:8632:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:8632:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:8633:2: 'with'
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getWithKeyword_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getVariableDeclarationsAccess().getWithKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__0__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__1"
+    // InternalTestgeneratorDSL.g:8642:1: rule__VariableDeclarations__Group__1 : rule__VariableDeclarations__Group__1__Impl rule__VariableDeclarations__Group__2 ;
+    public final void rule__VariableDeclarations__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8646:1: ( rule__VariableDeclarations__Group__1__Impl rule__VariableDeclarations__Group__2 )
+            // InternalTestgeneratorDSL.g:8647:2: rule__VariableDeclarations__Group__1__Impl rule__VariableDeclarations__Group__2
+            {
+            pushFollow(FOLLOW_47);
+            rule__VariableDeclarations__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__1"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:8654:1: rule__VariableDeclarations__Group__1__Impl : ( 'variables' ) ;
+    public final void rule__VariableDeclarations__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8658:1: ( ( 'variables' ) )
+            // InternalTestgeneratorDSL.g:8659:1: ( 'variables' )
+            {
+            // InternalTestgeneratorDSL.g:8659:1: ( 'variables' )
+            // InternalTestgeneratorDSL.g:8660:2: 'variables'
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getVariablesKeyword_1()); 
+            match(input,67,FOLLOW_2); 
+             after(grammarAccess.getVariableDeclarationsAccess().getVariablesKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__1__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__2"
+    // InternalTestgeneratorDSL.g:8669:1: rule__VariableDeclarations__Group__2 : rule__VariableDeclarations__Group__2__Impl rule__VariableDeclarations__Group__3 ;
+    public final void rule__VariableDeclarations__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8673:1: ( rule__VariableDeclarations__Group__2__Impl rule__VariableDeclarations__Group__3 )
+            // InternalTestgeneratorDSL.g:8674:2: rule__VariableDeclarations__Group__2__Impl rule__VariableDeclarations__Group__3
+            {
+            pushFollow(FOLLOW_4);
+            rule__VariableDeclarations__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__2"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:8681:1: rule__VariableDeclarations__Group__2__Impl : ( 'for' ) ;
+    public final void rule__VariableDeclarations__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8685:1: ( ( 'for' ) )
+            // InternalTestgeneratorDSL.g:8686:1: ( 'for' )
+            {
+            // InternalTestgeneratorDSL.g:8686:1: ( 'for' )
+            // InternalTestgeneratorDSL.g:8687:2: 'for'
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getForKeyword_2()); 
+            match(input,61,FOLLOW_2); 
+             after(grammarAccess.getVariableDeclarationsAccess().getForKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__2__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__3"
+    // InternalTestgeneratorDSL.g:8696:1: rule__VariableDeclarations__Group__3 : rule__VariableDeclarations__Group__3__Impl rule__VariableDeclarations__Group__4 ;
+    public final void rule__VariableDeclarations__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8700:1: ( rule__VariableDeclarations__Group__3__Impl rule__VariableDeclarations__Group__4 )
+            // InternalTestgeneratorDSL.g:8701:2: rule__VariableDeclarations__Group__3__Impl rule__VariableDeclarations__Group__4
+            {
+            pushFollow(FOLLOW_12);
+            rule__VariableDeclarations__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__3"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:8708:1: rule__VariableDeclarations__Group__3__Impl : ( ( rule__VariableDeclarations__TaskReferenceAssignment_3 ) ) ;
+    public final void rule__VariableDeclarations__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8712:1: ( ( ( rule__VariableDeclarations__TaskReferenceAssignment_3 ) ) )
+            // InternalTestgeneratorDSL.g:8713:1: ( ( rule__VariableDeclarations__TaskReferenceAssignment_3 ) )
+            {
+            // InternalTestgeneratorDSL.g:8713:1: ( ( rule__VariableDeclarations__TaskReferenceAssignment_3 ) )
+            // InternalTestgeneratorDSL.g:8714:2: ( rule__VariableDeclarations__TaskReferenceAssignment_3 )
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceAssignment_3()); 
+            // InternalTestgeneratorDSL.g:8715:2: ( rule__VariableDeclarations__TaskReferenceAssignment_3 )
+            // InternalTestgeneratorDSL.g:8715:3: rule__VariableDeclarations__TaskReferenceAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__TaskReferenceAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__3__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__4"
+    // InternalTestgeneratorDSL.g:8723:1: rule__VariableDeclarations__Group__4 : rule__VariableDeclarations__Group__4__Impl rule__VariableDeclarations__Group__5 ;
+    public final void rule__VariableDeclarations__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8727:1: ( rule__VariableDeclarations__Group__4__Impl rule__VariableDeclarations__Group__5 )
+            // InternalTestgeneratorDSL.g:8728:2: rule__VariableDeclarations__Group__4__Impl rule__VariableDeclarations__Group__5
+            {
+            pushFollow(FOLLOW_13);
+            rule__VariableDeclarations__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__4"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:8735:1: rule__VariableDeclarations__Group__4__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__VariableDeclarations__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8739:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:8740:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:8740:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:8741:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getASSOCIATIONTerminalRuleCall_4()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getVariableDeclarationsAccess().getASSOCIATIONTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__4__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__5"
+    // InternalTestgeneratorDSL.g:8750:1: rule__VariableDeclarations__Group__5 : rule__VariableDeclarations__Group__5__Impl rule__VariableDeclarations__Group__6 ;
+    public final void rule__VariableDeclarations__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8754:1: ( rule__VariableDeclarations__Group__5__Impl rule__VariableDeclarations__Group__6 )
+            // InternalTestgeneratorDSL.g:8755:2: rule__VariableDeclarations__Group__5__Impl rule__VariableDeclarations__Group__6
+            {
+            pushFollow(FOLLOW_20);
+            rule__VariableDeclarations__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__5"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:8762:1: rule__VariableDeclarations__Group__5__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__VariableDeclarations__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8766:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:8767:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:8767:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:8768:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getLIST_OPENTerminalRuleCall_5()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getVariableDeclarationsAccess().getLIST_OPENTerminalRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__5__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__6"
+    // InternalTestgeneratorDSL.g:8777:1: rule__VariableDeclarations__Group__6 : rule__VariableDeclarations__Group__6__Impl rule__VariableDeclarations__Group__7 ;
+    public final void rule__VariableDeclarations__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8781:1: ( rule__VariableDeclarations__Group__6__Impl rule__VariableDeclarations__Group__7 )
+            // InternalTestgeneratorDSL.g:8782:2: rule__VariableDeclarations__Group__6__Impl rule__VariableDeclarations__Group__7
+            {
+            pushFollow(FOLLOW_20);
+            rule__VariableDeclarations__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__6"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:8789:1: rule__VariableDeclarations__Group__6__Impl : ( ( rule__VariableDeclarations__Group_6__0 )? ) ;
+    public final void rule__VariableDeclarations__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8793:1: ( ( ( rule__VariableDeclarations__Group_6__0 )? ) )
+            // InternalTestgeneratorDSL.g:8794:1: ( ( rule__VariableDeclarations__Group_6__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:8794:1: ( ( rule__VariableDeclarations__Group_6__0 )? )
+            // InternalTestgeneratorDSL.g:8795:2: ( rule__VariableDeclarations__Group_6__0 )?
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getGroup_6()); 
+            // InternalTestgeneratorDSL.g:8796:2: ( rule__VariableDeclarations__Group_6__0 )?
+            int alt52=2;
+            int LA52_0 = input.LA(1);
+
+            if ( (LA52_0==RULE_ID) ) {
+                alt52=1;
+            }
+            switch (alt52) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:8796:3: rule__VariableDeclarations__Group_6__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__VariableDeclarations__Group_6__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getVariableDeclarationsAccess().getGroup_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__6__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__7"
+    // InternalTestgeneratorDSL.g:8804:1: rule__VariableDeclarations__Group__7 : rule__VariableDeclarations__Group__7__Impl ;
+    public final void rule__VariableDeclarations__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8808:1: ( rule__VariableDeclarations__Group__7__Impl )
+            // InternalTestgeneratorDSL.g:8809:2: rule__VariableDeclarations__Group__7__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group__7__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__7"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:8815:1: rule__VariableDeclarations__Group__7__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__VariableDeclarations__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8819:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:8820:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:8820:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:8821:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getLIST_CLOSEDTerminalRuleCall_7()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getVariableDeclarationsAccess().getLIST_CLOSEDTerminalRuleCall_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group__7__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group_6__0"
+    // InternalTestgeneratorDSL.g:8831:1: rule__VariableDeclarations__Group_6__0 : rule__VariableDeclarations__Group_6__0__Impl rule__VariableDeclarations__Group_6__1 ;
+    public final void rule__VariableDeclarations__Group_6__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8835:1: ( rule__VariableDeclarations__Group_6__0__Impl rule__VariableDeclarations__Group_6__1 )
+            // InternalTestgeneratorDSL.g:8836:2: rule__VariableDeclarations__Group_6__0__Impl rule__VariableDeclarations__Group_6__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__VariableDeclarations__Group_6__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group_6__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group_6__0"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group_6__0__Impl"
+    // InternalTestgeneratorDSL.g:8843:1: rule__VariableDeclarations__Group_6__0__Impl : ( ( rule__VariableDeclarations__VariablesAssignment_6_0 ) ) ;
+    public final void rule__VariableDeclarations__Group_6__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8847:1: ( ( ( rule__VariableDeclarations__VariablesAssignment_6_0 ) ) )
+            // InternalTestgeneratorDSL.g:8848:1: ( ( rule__VariableDeclarations__VariablesAssignment_6_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:8848:1: ( ( rule__VariableDeclarations__VariablesAssignment_6_0 ) )
+            // InternalTestgeneratorDSL.g:8849:2: ( rule__VariableDeclarations__VariablesAssignment_6_0 )
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_0()); 
+            // InternalTestgeneratorDSL.g:8850:2: ( rule__VariableDeclarations__VariablesAssignment_6_0 )
+            // InternalTestgeneratorDSL.g:8850:3: rule__VariableDeclarations__VariablesAssignment_6_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__VariablesAssignment_6_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group_6__0__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group_6__1"
+    // InternalTestgeneratorDSL.g:8858:1: rule__VariableDeclarations__Group_6__1 : rule__VariableDeclarations__Group_6__1__Impl ;
+    public final void rule__VariableDeclarations__Group_6__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8862:1: ( rule__VariableDeclarations__Group_6__1__Impl )
+            // InternalTestgeneratorDSL.g:8863:2: rule__VariableDeclarations__Group_6__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group_6__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group_6__1"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group_6__1__Impl"
+    // InternalTestgeneratorDSL.g:8869:1: rule__VariableDeclarations__Group_6__1__Impl : ( ( rule__VariableDeclarations__Group_6_1__0 )* ) ;
+    public final void rule__VariableDeclarations__Group_6__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8873:1: ( ( ( rule__VariableDeclarations__Group_6_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:8874:1: ( ( rule__VariableDeclarations__Group_6_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:8874:1: ( ( rule__VariableDeclarations__Group_6_1__0 )* )
+            // InternalTestgeneratorDSL.g:8875:2: ( rule__VariableDeclarations__Group_6_1__0 )*
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getGroup_6_1()); 
+            // InternalTestgeneratorDSL.g:8876:2: ( rule__VariableDeclarations__Group_6_1__0 )*
+            loop53:
+            do {
+                int alt53=2;
+                int LA53_0 = input.LA(1);
+
+                if ( (LA53_0==RULE_SEPARATOR) ) {
+                    alt53=1;
+                }
+
+
+                switch (alt53) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:8876:3: rule__VariableDeclarations__Group_6_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__VariableDeclarations__Group_6_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop53;
+                }
+            } while (true);
+
+             after(grammarAccess.getVariableDeclarationsAccess().getGroup_6_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group_6__1__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group_6_1__0"
+    // InternalTestgeneratorDSL.g:8885:1: rule__VariableDeclarations__Group_6_1__0 : rule__VariableDeclarations__Group_6_1__0__Impl rule__VariableDeclarations__Group_6_1__1 ;
+    public final void rule__VariableDeclarations__Group_6_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8889:1: ( rule__VariableDeclarations__Group_6_1__0__Impl rule__VariableDeclarations__Group_6_1__1 )
+            // InternalTestgeneratorDSL.g:8890:2: rule__VariableDeclarations__Group_6_1__0__Impl rule__VariableDeclarations__Group_6_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__VariableDeclarations__Group_6_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group_6_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group_6_1__0"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group_6_1__0__Impl"
+    // InternalTestgeneratorDSL.g:8897:1: rule__VariableDeclarations__Group_6_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__VariableDeclarations__Group_6_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8901:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:8902:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:8902:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:8903:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getSEPARATORTerminalRuleCall_6_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getVariableDeclarationsAccess().getSEPARATORTerminalRuleCall_6_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group_6_1__0__Impl"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group_6_1__1"
+    // InternalTestgeneratorDSL.g:8912:1: rule__VariableDeclarations__Group_6_1__1 : rule__VariableDeclarations__Group_6_1__1__Impl ;
+    public final void rule__VariableDeclarations__Group_6_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8916:1: ( rule__VariableDeclarations__Group_6_1__1__Impl )
+            // InternalTestgeneratorDSL.g:8917:2: rule__VariableDeclarations__Group_6_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__Group_6_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group_6_1__1"
+
+
+    // $ANTLR start "rule__VariableDeclarations__Group_6_1__1__Impl"
+    // InternalTestgeneratorDSL.g:8923:1: rule__VariableDeclarations__Group_6_1__1__Impl : ( ( rule__VariableDeclarations__VariablesAssignment_6_1_1 ) ) ;
+    public final void rule__VariableDeclarations__Group_6_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8927:1: ( ( ( rule__VariableDeclarations__VariablesAssignment_6_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:8928:1: ( ( rule__VariableDeclarations__VariablesAssignment_6_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:8928:1: ( ( rule__VariableDeclarations__VariablesAssignment_6_1_1 ) )
+            // InternalTestgeneratorDSL.g:8929:2: ( rule__VariableDeclarations__VariablesAssignment_6_1_1 )
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_1_1()); 
+            // InternalTestgeneratorDSL.g:8930:2: ( rule__VariableDeclarations__VariablesAssignment_6_1_1 )
+            // InternalTestgeneratorDSL.g:8930:3: rule__VariableDeclarations__VariablesAssignment_6_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__VariableDeclarations__VariablesAssignment_6_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getVariableDeclarationsAccess().getVariablesAssignment_6_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__Group_6_1__1__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group__0"
+    // InternalTestgeneratorDSL.g:8939:1: rule__EndChecks__Group__0 : rule__EndChecks__Group__0__Impl rule__EndChecks__Group__1 ;
+    public final void rule__EndChecks__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8943:1: ( rule__EndChecks__Group__0__Impl rule__EndChecks__Group__1 )
+            // InternalTestgeneratorDSL.g:8944:2: rule__EndChecks__Group__0__Impl rule__EndChecks__Group__1
+            {
+            pushFollow(FOLLOW_53);
+            rule__EndChecks__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__0"
+
+
+    // $ANTLR start "rule__EndChecks__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:8951:1: rule__EndChecks__Group__0__Impl : ( 'with' ) ;
+    public final void rule__EndChecks__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8955:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:8956:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:8956:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:8957:2: 'with'
+            {
+             before(grammarAccess.getEndChecksAccess().getWithKeyword_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getEndChecksAccess().getWithKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__0__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group__1"
+    // InternalTestgeneratorDSL.g:8966:1: rule__EndChecks__Group__1 : rule__EndChecks__Group__1__Impl rule__EndChecks__Group__2 ;
+    public final void rule__EndChecks__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8970:1: ( rule__EndChecks__Group__1__Impl rule__EndChecks__Group__2 )
+            // InternalTestgeneratorDSL.g:8971:2: rule__EndChecks__Group__1__Impl rule__EndChecks__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__EndChecks__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__1"
+
+
+    // $ANTLR start "rule__EndChecks__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:8978:1: rule__EndChecks__Group__1__Impl : ( 'check' ) ;
+    public final void rule__EndChecks__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8982:1: ( ( 'check' ) )
+            // InternalTestgeneratorDSL.g:8983:1: ( 'check' )
+            {
+            // InternalTestgeneratorDSL.g:8983:1: ( 'check' )
+            // InternalTestgeneratorDSL.g:8984:2: 'check'
+            {
+             before(grammarAccess.getEndChecksAccess().getCheckKeyword_1()); 
+            match(input,68,FOLLOW_2); 
+             after(grammarAccess.getEndChecksAccess().getCheckKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__1__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group__2"
+    // InternalTestgeneratorDSL.g:8993:1: rule__EndChecks__Group__2 : rule__EndChecks__Group__2__Impl rule__EndChecks__Group__3 ;
+    public final void rule__EndChecks__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:8997:1: ( rule__EndChecks__Group__2__Impl rule__EndChecks__Group__3 )
+            // InternalTestgeneratorDSL.g:8998:2: rule__EndChecks__Group__2__Impl rule__EndChecks__Group__3
+            {
+            pushFollow(FOLLOW_13);
+            rule__EndChecks__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__2"
+
+
+    // $ANTLR start "rule__EndChecks__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9005:1: rule__EndChecks__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__EndChecks__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9009:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:9010:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:9010:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:9011:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getEndChecksAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getEndChecksAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__2__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group__3"
+    // InternalTestgeneratorDSL.g:9020:1: rule__EndChecks__Group__3 : rule__EndChecks__Group__3__Impl rule__EndChecks__Group__4 ;
+    public final void rule__EndChecks__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9024:1: ( rule__EndChecks__Group__3__Impl rule__EndChecks__Group__4 )
+            // InternalTestgeneratorDSL.g:9025:2: rule__EndChecks__Group__3__Impl rule__EndChecks__Group__4
+            {
+            pushFollow(FOLLOW_20);
+            rule__EndChecks__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__3"
+
+
+    // $ANTLR start "rule__EndChecks__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:9032:1: rule__EndChecks__Group__3__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__EndChecks__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9036:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:9037:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:9037:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:9038:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getEndChecksAccess().getLIST_OPENTerminalRuleCall_3()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getEndChecksAccess().getLIST_OPENTerminalRuleCall_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__3__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group__4"
+    // InternalTestgeneratorDSL.g:9047:1: rule__EndChecks__Group__4 : rule__EndChecks__Group__4__Impl rule__EndChecks__Group__5 ;
+    public final void rule__EndChecks__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9051:1: ( rule__EndChecks__Group__4__Impl rule__EndChecks__Group__5 )
+            // InternalTestgeneratorDSL.g:9052:2: rule__EndChecks__Group__4__Impl rule__EndChecks__Group__5
+            {
+            pushFollow(FOLLOW_20);
+            rule__EndChecks__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__4"
+
+
+    // $ANTLR start "rule__EndChecks__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:9059:1: rule__EndChecks__Group__4__Impl : ( ( rule__EndChecks__Group_4__0 )? ) ;
+    public final void rule__EndChecks__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9063:1: ( ( ( rule__EndChecks__Group_4__0 )? ) )
+            // InternalTestgeneratorDSL.g:9064:1: ( ( rule__EndChecks__Group_4__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:9064:1: ( ( rule__EndChecks__Group_4__0 )? )
+            // InternalTestgeneratorDSL.g:9065:2: ( rule__EndChecks__Group_4__0 )?
+            {
+             before(grammarAccess.getEndChecksAccess().getGroup_4()); 
+            // InternalTestgeneratorDSL.g:9066:2: ( rule__EndChecks__Group_4__0 )?
+            int alt54=2;
+            int LA54_0 = input.LA(1);
+
+            if ( (LA54_0==RULE_ID) ) {
+                alt54=1;
+            }
+            switch (alt54) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:9066:3: rule__EndChecks__Group_4__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__EndChecks__Group_4__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getEndChecksAccess().getGroup_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__4__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group__5"
+    // InternalTestgeneratorDSL.g:9074:1: rule__EndChecks__Group__5 : rule__EndChecks__Group__5__Impl ;
+    public final void rule__EndChecks__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9078:1: ( rule__EndChecks__Group__5__Impl )
+            // InternalTestgeneratorDSL.g:9079:2: rule__EndChecks__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__5"
+
+
+    // $ANTLR start "rule__EndChecks__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:9085:1: rule__EndChecks__Group__5__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__EndChecks__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9089:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:9090:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:9090:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:9091:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getEndChecksAccess().getLIST_CLOSEDTerminalRuleCall_5()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getEndChecksAccess().getLIST_CLOSEDTerminalRuleCall_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group__5__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group_4__0"
+    // InternalTestgeneratorDSL.g:9101:1: rule__EndChecks__Group_4__0 : rule__EndChecks__Group_4__0__Impl rule__EndChecks__Group_4__1 ;
+    public final void rule__EndChecks__Group_4__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9105:1: ( rule__EndChecks__Group_4__0__Impl rule__EndChecks__Group_4__1 )
+            // InternalTestgeneratorDSL.g:9106:2: rule__EndChecks__Group_4__0__Impl rule__EndChecks__Group_4__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__EndChecks__Group_4__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group_4__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group_4__0"
+
+
+    // $ANTLR start "rule__EndChecks__Group_4__0__Impl"
+    // InternalTestgeneratorDSL.g:9113:1: rule__EndChecks__Group_4__0__Impl : ( ( rule__EndChecks__EndChecksAssignment_4_0 ) ) ;
+    public final void rule__EndChecks__Group_4__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9117:1: ( ( ( rule__EndChecks__EndChecksAssignment_4_0 ) ) )
+            // InternalTestgeneratorDSL.g:9118:1: ( ( rule__EndChecks__EndChecksAssignment_4_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9118:1: ( ( rule__EndChecks__EndChecksAssignment_4_0 ) )
+            // InternalTestgeneratorDSL.g:9119:2: ( rule__EndChecks__EndChecksAssignment_4_0 )
+            {
+             before(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_0()); 
+            // InternalTestgeneratorDSL.g:9120:2: ( rule__EndChecks__EndChecksAssignment_4_0 )
+            // InternalTestgeneratorDSL.g:9120:3: rule__EndChecks__EndChecksAssignment_4_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__EndChecksAssignment_4_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group_4__0__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group_4__1"
+    // InternalTestgeneratorDSL.g:9128:1: rule__EndChecks__Group_4__1 : rule__EndChecks__Group_4__1__Impl ;
+    public final void rule__EndChecks__Group_4__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9132:1: ( rule__EndChecks__Group_4__1__Impl )
+            // InternalTestgeneratorDSL.g:9133:2: rule__EndChecks__Group_4__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group_4__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group_4__1"
+
+
+    // $ANTLR start "rule__EndChecks__Group_4__1__Impl"
+    // InternalTestgeneratorDSL.g:9139:1: rule__EndChecks__Group_4__1__Impl : ( ( rule__EndChecks__Group_4_1__0 )* ) ;
+    public final void rule__EndChecks__Group_4__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9143:1: ( ( ( rule__EndChecks__Group_4_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:9144:1: ( ( rule__EndChecks__Group_4_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:9144:1: ( ( rule__EndChecks__Group_4_1__0 )* )
+            // InternalTestgeneratorDSL.g:9145:2: ( rule__EndChecks__Group_4_1__0 )*
+            {
+             before(grammarAccess.getEndChecksAccess().getGroup_4_1()); 
+            // InternalTestgeneratorDSL.g:9146:2: ( rule__EndChecks__Group_4_1__0 )*
+            loop55:
+            do {
+                int alt55=2;
+                int LA55_0 = input.LA(1);
+
+                if ( (LA55_0==RULE_SEPARATOR) ) {
+                    alt55=1;
+                }
+
+
+                switch (alt55) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:9146:3: rule__EndChecks__Group_4_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__EndChecks__Group_4_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop55;
+                }
+            } while (true);
+
+             after(grammarAccess.getEndChecksAccess().getGroup_4_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group_4__1__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group_4_1__0"
+    // InternalTestgeneratorDSL.g:9155:1: rule__EndChecks__Group_4_1__0 : rule__EndChecks__Group_4_1__0__Impl rule__EndChecks__Group_4_1__1 ;
+    public final void rule__EndChecks__Group_4_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9159:1: ( rule__EndChecks__Group_4_1__0__Impl rule__EndChecks__Group_4_1__1 )
+            // InternalTestgeneratorDSL.g:9160:2: rule__EndChecks__Group_4_1__0__Impl rule__EndChecks__Group_4_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__EndChecks__Group_4_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group_4_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group_4_1__0"
+
+
+    // $ANTLR start "rule__EndChecks__Group_4_1__0__Impl"
+    // InternalTestgeneratorDSL.g:9167:1: rule__EndChecks__Group_4_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__EndChecks__Group_4_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9171:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:9172:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:9172:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:9173:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getEndChecksAccess().getSEPARATORTerminalRuleCall_4_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getEndChecksAccess().getSEPARATORTerminalRuleCall_4_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group_4_1__0__Impl"
+
+
+    // $ANTLR start "rule__EndChecks__Group_4_1__1"
+    // InternalTestgeneratorDSL.g:9182:1: rule__EndChecks__Group_4_1__1 : rule__EndChecks__Group_4_1__1__Impl ;
+    public final void rule__EndChecks__Group_4_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9186:1: ( rule__EndChecks__Group_4_1__1__Impl )
+            // InternalTestgeneratorDSL.g:9187:2: rule__EndChecks__Group_4_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__Group_4_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group_4_1__1"
+
+
+    // $ANTLR start "rule__EndChecks__Group_4_1__1__Impl"
+    // InternalTestgeneratorDSL.g:9193:1: rule__EndChecks__Group_4_1__1__Impl : ( ( rule__EndChecks__EndChecksAssignment_4_1_1 ) ) ;
+    public final void rule__EndChecks__Group_4_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9197:1: ( ( ( rule__EndChecks__EndChecksAssignment_4_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:9198:1: ( ( rule__EndChecks__EndChecksAssignment_4_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:9198:1: ( ( rule__EndChecks__EndChecksAssignment_4_1_1 ) )
+            // InternalTestgeneratorDSL.g:9199:2: ( rule__EndChecks__EndChecksAssignment_4_1_1 )
+            {
+             before(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_1_1()); 
+            // InternalTestgeneratorDSL.g:9200:2: ( rule__EndChecks__EndChecksAssignment_4_1_1 )
+            // InternalTestgeneratorDSL.g:9200:3: rule__EndChecks__EndChecksAssignment_4_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__EndChecks__EndChecksAssignment_4_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getEndChecksAccess().getEndChecksAssignment_4_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__Group_4_1__1__Impl"
+
+
+    // $ANTLR start "rule__StringVariableDeclaration__Group__0"
+    // InternalTestgeneratorDSL.g:9209:1: rule__StringVariableDeclaration__Group__0 : rule__StringVariableDeclaration__Group__0__Impl rule__StringVariableDeclaration__Group__1 ;
+    public final void rule__StringVariableDeclaration__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9213:1: ( rule__StringVariableDeclaration__Group__0__Impl rule__StringVariableDeclaration__Group__1 )
+            // InternalTestgeneratorDSL.g:9214:2: rule__StringVariableDeclaration__Group__0__Impl rule__StringVariableDeclaration__Group__1
+            {
+            pushFollow(FOLLOW_54);
+            rule__StringVariableDeclaration__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariableDeclaration__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableDeclaration__Group__0"
+
+
+    // $ANTLR start "rule__StringVariableDeclaration__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9221:1: rule__StringVariableDeclaration__Group__0__Impl : ( ( rule__StringVariableDeclaration__KeyAssignment_0 ) ) ;
+    public final void rule__StringVariableDeclaration__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9225:1: ( ( ( rule__StringVariableDeclaration__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9226:1: ( ( rule__StringVariableDeclaration__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9226:1: ( ( rule__StringVariableDeclaration__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9227:2: ( rule__StringVariableDeclaration__KeyAssignment_0 )
+            {
+             before(grammarAccess.getStringVariableDeclarationAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9228:2: ( rule__StringVariableDeclaration__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9228:3: rule__StringVariableDeclaration__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableDeclaration__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableDeclarationAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableDeclaration__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StringVariableDeclaration__Group__1"
+    // InternalTestgeneratorDSL.g:9236:1: rule__StringVariableDeclaration__Group__1 : rule__StringVariableDeclaration__Group__1__Impl rule__StringVariableDeclaration__Group__2 ;
+    public final void rule__StringVariableDeclaration__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9240:1: ( rule__StringVariableDeclaration__Group__1__Impl rule__StringVariableDeclaration__Group__2 )
+            // InternalTestgeneratorDSL.g:9241:2: rule__StringVariableDeclaration__Group__1__Impl rule__StringVariableDeclaration__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__StringVariableDeclaration__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariableDeclaration__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableDeclaration__Group__1"
+
+
+    // $ANTLR start "rule__StringVariableDeclaration__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9248:1: rule__StringVariableDeclaration__Group__1__Impl : ( '=' ) ;
+    public final void rule__StringVariableDeclaration__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9252:1: ( ( '=' ) )
+            // InternalTestgeneratorDSL.g:9253:1: ( '=' )
+            {
+            // InternalTestgeneratorDSL.g:9253:1: ( '=' )
+            // InternalTestgeneratorDSL.g:9254:2: '='
+            {
+             before(grammarAccess.getStringVariableDeclarationAccess().getEqualsSignKeyword_1()); 
+            match(input,69,FOLLOW_2); 
+             after(grammarAccess.getStringVariableDeclarationAccess().getEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableDeclaration__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StringVariableDeclaration__Group__2"
+    // InternalTestgeneratorDSL.g:9263:1: rule__StringVariableDeclaration__Group__2 : rule__StringVariableDeclaration__Group__2__Impl ;
+    public final void rule__StringVariableDeclaration__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9267:1: ( rule__StringVariableDeclaration__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9268:2: rule__StringVariableDeclaration__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableDeclaration__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableDeclaration__Group__2"
+
+
+    // $ANTLR start "rule__StringVariableDeclaration__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9274:1: rule__StringVariableDeclaration__Group__2__Impl : ( ( rule__StringVariableDeclaration__ValueAssignment_2 ) ) ;
+    public final void rule__StringVariableDeclaration__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9278:1: ( ( ( rule__StringVariableDeclaration__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9279:1: ( ( rule__StringVariableDeclaration__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9279:1: ( ( rule__StringVariableDeclaration__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9280:2: ( rule__StringVariableDeclaration__ValueAssignment_2 )
+            {
+             before(grammarAccess.getStringVariableDeclarationAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9281:2: ( rule__StringVariableDeclaration__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9281:3: rule__StringVariableDeclaration__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableDeclaration__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableDeclarationAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableDeclaration__Group__2__Impl"
+
+
+    // $ANTLR start "rule__IntVariableDeclaration__Group__0"
+    // InternalTestgeneratorDSL.g:9290:1: rule__IntVariableDeclaration__Group__0 : rule__IntVariableDeclaration__Group__0__Impl rule__IntVariableDeclaration__Group__1 ;
+    public final void rule__IntVariableDeclaration__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9294:1: ( rule__IntVariableDeclaration__Group__0__Impl rule__IntVariableDeclaration__Group__1 )
+            // InternalTestgeneratorDSL.g:9295:2: rule__IntVariableDeclaration__Group__0__Impl rule__IntVariableDeclaration__Group__1
+            {
+            pushFollow(FOLLOW_54);
+            rule__IntVariableDeclaration__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariableDeclaration__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableDeclaration__Group__0"
+
+
+    // $ANTLR start "rule__IntVariableDeclaration__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9302:1: rule__IntVariableDeclaration__Group__0__Impl : ( ( rule__IntVariableDeclaration__KeyAssignment_0 ) ) ;
+    public final void rule__IntVariableDeclaration__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9306:1: ( ( ( rule__IntVariableDeclaration__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9307:1: ( ( rule__IntVariableDeclaration__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9307:1: ( ( rule__IntVariableDeclaration__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9308:2: ( rule__IntVariableDeclaration__KeyAssignment_0 )
+            {
+             before(grammarAccess.getIntVariableDeclarationAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9309:2: ( rule__IntVariableDeclaration__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9309:3: rule__IntVariableDeclaration__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableDeclaration__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableDeclarationAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableDeclaration__Group__0__Impl"
+
+
+    // $ANTLR start "rule__IntVariableDeclaration__Group__1"
+    // InternalTestgeneratorDSL.g:9317:1: rule__IntVariableDeclaration__Group__1 : rule__IntVariableDeclaration__Group__1__Impl rule__IntVariableDeclaration__Group__2 ;
+    public final void rule__IntVariableDeclaration__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9321:1: ( rule__IntVariableDeclaration__Group__1__Impl rule__IntVariableDeclaration__Group__2 )
+            // InternalTestgeneratorDSL.g:9322:2: rule__IntVariableDeclaration__Group__1__Impl rule__IntVariableDeclaration__Group__2
+            {
+            pushFollow(FOLLOW_37);
+            rule__IntVariableDeclaration__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariableDeclaration__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableDeclaration__Group__1"
+
+
+    // $ANTLR start "rule__IntVariableDeclaration__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9329:1: rule__IntVariableDeclaration__Group__1__Impl : ( '=' ) ;
+    public final void rule__IntVariableDeclaration__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9333:1: ( ( '=' ) )
+            // InternalTestgeneratorDSL.g:9334:1: ( '=' )
+            {
+            // InternalTestgeneratorDSL.g:9334:1: ( '=' )
+            // InternalTestgeneratorDSL.g:9335:2: '='
+            {
+             before(grammarAccess.getIntVariableDeclarationAccess().getEqualsSignKeyword_1()); 
+            match(input,69,FOLLOW_2); 
+             after(grammarAccess.getIntVariableDeclarationAccess().getEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableDeclaration__Group__1__Impl"
+
+
+    // $ANTLR start "rule__IntVariableDeclaration__Group__2"
+    // InternalTestgeneratorDSL.g:9344:1: rule__IntVariableDeclaration__Group__2 : rule__IntVariableDeclaration__Group__2__Impl ;
+    public final void rule__IntVariableDeclaration__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9348:1: ( rule__IntVariableDeclaration__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9349:2: rule__IntVariableDeclaration__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableDeclaration__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableDeclaration__Group__2"
+
+
+    // $ANTLR start "rule__IntVariableDeclaration__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9355:1: rule__IntVariableDeclaration__Group__2__Impl : ( ( rule__IntVariableDeclaration__ValueAssignment_2 ) ) ;
+    public final void rule__IntVariableDeclaration__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9359:1: ( ( ( rule__IntVariableDeclaration__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9360:1: ( ( rule__IntVariableDeclaration__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9360:1: ( ( rule__IntVariableDeclaration__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9361:2: ( rule__IntVariableDeclaration__ValueAssignment_2 )
+            {
+             before(grammarAccess.getIntVariableDeclarationAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9362:2: ( rule__IntVariableDeclaration__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9362:3: rule__IntVariableDeclaration__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableDeclaration__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableDeclarationAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableDeclaration__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableDeclaration__Group__0"
+    // InternalTestgeneratorDSL.g:9371:1: rule__BooleanVariableDeclaration__Group__0 : rule__BooleanVariableDeclaration__Group__0__Impl rule__BooleanVariableDeclaration__Group__1 ;
+    public final void rule__BooleanVariableDeclaration__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9375:1: ( rule__BooleanVariableDeclaration__Group__0__Impl rule__BooleanVariableDeclaration__Group__1 )
+            // InternalTestgeneratorDSL.g:9376:2: rule__BooleanVariableDeclaration__Group__0__Impl rule__BooleanVariableDeclaration__Group__1
+            {
+            pushFollow(FOLLOW_54);
+            rule__BooleanVariableDeclaration__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableDeclaration__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableDeclaration__Group__0"
+
+
+    // $ANTLR start "rule__BooleanVariableDeclaration__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9383:1: rule__BooleanVariableDeclaration__Group__0__Impl : ( ( rule__BooleanVariableDeclaration__KeyAssignment_0 ) ) ;
+    public final void rule__BooleanVariableDeclaration__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9387:1: ( ( ( rule__BooleanVariableDeclaration__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9388:1: ( ( rule__BooleanVariableDeclaration__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9388:1: ( ( rule__BooleanVariableDeclaration__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9389:2: ( rule__BooleanVariableDeclaration__KeyAssignment_0 )
+            {
+             before(grammarAccess.getBooleanVariableDeclarationAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9390:2: ( rule__BooleanVariableDeclaration__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9390:3: rule__BooleanVariableDeclaration__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableDeclaration__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableDeclarationAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableDeclaration__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableDeclaration__Group__1"
+    // InternalTestgeneratorDSL.g:9398:1: rule__BooleanVariableDeclaration__Group__1 : rule__BooleanVariableDeclaration__Group__1__Impl rule__BooleanVariableDeclaration__Group__2 ;
+    public final void rule__BooleanVariableDeclaration__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9402:1: ( rule__BooleanVariableDeclaration__Group__1__Impl rule__BooleanVariableDeclaration__Group__2 )
+            // InternalTestgeneratorDSL.g:9403:2: rule__BooleanVariableDeclaration__Group__1__Impl rule__BooleanVariableDeclaration__Group__2
+            {
+            pushFollow(FOLLOW_39);
+            rule__BooleanVariableDeclaration__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableDeclaration__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableDeclaration__Group__1"
+
+
+    // $ANTLR start "rule__BooleanVariableDeclaration__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9410:1: rule__BooleanVariableDeclaration__Group__1__Impl : ( '=' ) ;
+    public final void rule__BooleanVariableDeclaration__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9414:1: ( ( '=' ) )
+            // InternalTestgeneratorDSL.g:9415:1: ( '=' )
+            {
+            // InternalTestgeneratorDSL.g:9415:1: ( '=' )
+            // InternalTestgeneratorDSL.g:9416:2: '='
+            {
+             before(grammarAccess.getBooleanVariableDeclarationAccess().getEqualsSignKeyword_1()); 
+            match(input,69,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableDeclarationAccess().getEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableDeclaration__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableDeclaration__Group__2"
+    // InternalTestgeneratorDSL.g:9425:1: rule__BooleanVariableDeclaration__Group__2 : rule__BooleanVariableDeclaration__Group__2__Impl ;
+    public final void rule__BooleanVariableDeclaration__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9429:1: ( rule__BooleanVariableDeclaration__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9430:2: rule__BooleanVariableDeclaration__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableDeclaration__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableDeclaration__Group__2"
+
+
+    // $ANTLR start "rule__BooleanVariableDeclaration__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9436:1: rule__BooleanVariableDeclaration__Group__2__Impl : ( ( rule__BooleanVariableDeclaration__ValueAssignment_2 ) ) ;
+    public final void rule__BooleanVariableDeclaration__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9440:1: ( ( ( rule__BooleanVariableDeclaration__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9441:1: ( ( rule__BooleanVariableDeclaration__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9441:1: ( ( rule__BooleanVariableDeclaration__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9442:2: ( rule__BooleanVariableDeclaration__ValueAssignment_2 )
+            {
+             before(grammarAccess.getBooleanVariableDeclarationAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9443:2: ( rule__BooleanVariableDeclaration__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9443:3: rule__BooleanVariableDeclaration__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableDeclaration__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableDeclarationAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableDeclaration__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StringVariableEquals__Group__0"
+    // InternalTestgeneratorDSL.g:9452:1: rule__StringVariableEquals__Group__0 : rule__StringVariableEquals__Group__0__Impl rule__StringVariableEquals__Group__1 ;
+    public final void rule__StringVariableEquals__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9456:1: ( rule__StringVariableEquals__Group__0__Impl rule__StringVariableEquals__Group__1 )
+            // InternalTestgeneratorDSL.g:9457:2: rule__StringVariableEquals__Group__0__Impl rule__StringVariableEquals__Group__1
+            {
+            pushFollow(FOLLOW_55);
+            rule__StringVariableEquals__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariableEquals__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableEquals__Group__0"
+
+
+    // $ANTLR start "rule__StringVariableEquals__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9464:1: rule__StringVariableEquals__Group__0__Impl : ( ( rule__StringVariableEquals__KeyAssignment_0 ) ) ;
+    public final void rule__StringVariableEquals__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9468:1: ( ( ( rule__StringVariableEquals__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9469:1: ( ( rule__StringVariableEquals__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9469:1: ( ( rule__StringVariableEquals__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9470:2: ( rule__StringVariableEquals__KeyAssignment_0 )
+            {
+             before(grammarAccess.getStringVariableEqualsAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9471:2: ( rule__StringVariableEquals__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9471:3: rule__StringVariableEquals__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableEquals__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableEqualsAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableEquals__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StringVariableEquals__Group__1"
+    // InternalTestgeneratorDSL.g:9479:1: rule__StringVariableEquals__Group__1 : rule__StringVariableEquals__Group__1__Impl rule__StringVariableEquals__Group__2 ;
+    public final void rule__StringVariableEquals__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9483:1: ( rule__StringVariableEquals__Group__1__Impl rule__StringVariableEquals__Group__2 )
+            // InternalTestgeneratorDSL.g:9484:2: rule__StringVariableEquals__Group__1__Impl rule__StringVariableEquals__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__StringVariableEquals__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariableEquals__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableEquals__Group__1"
+
+
+    // $ANTLR start "rule__StringVariableEquals__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9491:1: rule__StringVariableEquals__Group__1__Impl : ( '==' ) ;
+    public final void rule__StringVariableEquals__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9495:1: ( ( '==' ) )
+            // InternalTestgeneratorDSL.g:9496:1: ( '==' )
+            {
+            // InternalTestgeneratorDSL.g:9496:1: ( '==' )
+            // InternalTestgeneratorDSL.g:9497:2: '=='
+            {
+             before(grammarAccess.getStringVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); 
+            match(input,18,FOLLOW_2); 
+             after(grammarAccess.getStringVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableEquals__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StringVariableEquals__Group__2"
+    // InternalTestgeneratorDSL.g:9506:1: rule__StringVariableEquals__Group__2 : rule__StringVariableEquals__Group__2__Impl ;
+    public final void rule__StringVariableEquals__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9510:1: ( rule__StringVariableEquals__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9511:2: rule__StringVariableEquals__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableEquals__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableEquals__Group__2"
+
+
+    // $ANTLR start "rule__StringVariableEquals__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9517:1: rule__StringVariableEquals__Group__2__Impl : ( ( rule__StringVariableEquals__ValueAssignment_2 ) ) ;
+    public final void rule__StringVariableEquals__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9521:1: ( ( ( rule__StringVariableEquals__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9522:1: ( ( rule__StringVariableEquals__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9522:1: ( ( rule__StringVariableEquals__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9523:2: ( rule__StringVariableEquals__ValueAssignment_2 )
+            {
+             before(grammarAccess.getStringVariableEqualsAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9524:2: ( rule__StringVariableEquals__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9524:3: rule__StringVariableEquals__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableEquals__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableEqualsAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableEquals__Group__2__Impl"
+
+
+    // $ANTLR start "rule__IntVariableEquals__Group__0"
+    // InternalTestgeneratorDSL.g:9533:1: rule__IntVariableEquals__Group__0 : rule__IntVariableEquals__Group__0__Impl rule__IntVariableEquals__Group__1 ;
+    public final void rule__IntVariableEquals__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9537:1: ( rule__IntVariableEquals__Group__0__Impl rule__IntVariableEquals__Group__1 )
+            // InternalTestgeneratorDSL.g:9538:2: rule__IntVariableEquals__Group__0__Impl rule__IntVariableEquals__Group__1
+            {
+            pushFollow(FOLLOW_55);
+            rule__IntVariableEquals__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariableEquals__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableEquals__Group__0"
+
+
+    // $ANTLR start "rule__IntVariableEquals__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9545:1: rule__IntVariableEquals__Group__0__Impl : ( ( rule__IntVariableEquals__KeyAssignment_0 ) ) ;
+    public final void rule__IntVariableEquals__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9549:1: ( ( ( rule__IntVariableEquals__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9550:1: ( ( rule__IntVariableEquals__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9550:1: ( ( rule__IntVariableEquals__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9551:2: ( rule__IntVariableEquals__KeyAssignment_0 )
+            {
+             before(grammarAccess.getIntVariableEqualsAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9552:2: ( rule__IntVariableEquals__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9552:3: rule__IntVariableEquals__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableEquals__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableEqualsAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableEquals__Group__0__Impl"
+
+
+    // $ANTLR start "rule__IntVariableEquals__Group__1"
+    // InternalTestgeneratorDSL.g:9560:1: rule__IntVariableEquals__Group__1 : rule__IntVariableEquals__Group__1__Impl rule__IntVariableEquals__Group__2 ;
+    public final void rule__IntVariableEquals__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9564:1: ( rule__IntVariableEquals__Group__1__Impl rule__IntVariableEquals__Group__2 )
+            // InternalTestgeneratorDSL.g:9565:2: rule__IntVariableEquals__Group__1__Impl rule__IntVariableEquals__Group__2
+            {
+            pushFollow(FOLLOW_37);
+            rule__IntVariableEquals__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariableEquals__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableEquals__Group__1"
+
+
+    // $ANTLR start "rule__IntVariableEquals__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9572:1: rule__IntVariableEquals__Group__1__Impl : ( '==' ) ;
+    public final void rule__IntVariableEquals__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9576:1: ( ( '==' ) )
+            // InternalTestgeneratorDSL.g:9577:1: ( '==' )
+            {
+            // InternalTestgeneratorDSL.g:9577:1: ( '==' )
+            // InternalTestgeneratorDSL.g:9578:2: '=='
+            {
+             before(grammarAccess.getIntVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); 
+            match(input,18,FOLLOW_2); 
+             after(grammarAccess.getIntVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableEquals__Group__1__Impl"
+
+
+    // $ANTLR start "rule__IntVariableEquals__Group__2"
+    // InternalTestgeneratorDSL.g:9587:1: rule__IntVariableEquals__Group__2 : rule__IntVariableEquals__Group__2__Impl ;
+    public final void rule__IntVariableEquals__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9591:1: ( rule__IntVariableEquals__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9592:2: rule__IntVariableEquals__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableEquals__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableEquals__Group__2"
+
+
+    // $ANTLR start "rule__IntVariableEquals__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9598:1: rule__IntVariableEquals__Group__2__Impl : ( ( rule__IntVariableEquals__ValueAssignment_2 ) ) ;
+    public final void rule__IntVariableEquals__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9602:1: ( ( ( rule__IntVariableEquals__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9603:1: ( ( rule__IntVariableEquals__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9603:1: ( ( rule__IntVariableEquals__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9604:2: ( rule__IntVariableEquals__ValueAssignment_2 )
+            {
+             before(grammarAccess.getIntVariableEqualsAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9605:2: ( rule__IntVariableEquals__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9605:3: rule__IntVariableEquals__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableEquals__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableEqualsAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableEquals__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableEquals__Group__0"
+    // InternalTestgeneratorDSL.g:9614:1: rule__BooleanVariableEquals__Group__0 : rule__BooleanVariableEquals__Group__0__Impl rule__BooleanVariableEquals__Group__1 ;
+    public final void rule__BooleanVariableEquals__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9618:1: ( rule__BooleanVariableEquals__Group__0__Impl rule__BooleanVariableEquals__Group__1 )
+            // InternalTestgeneratorDSL.g:9619:2: rule__BooleanVariableEquals__Group__0__Impl rule__BooleanVariableEquals__Group__1
+            {
+            pushFollow(FOLLOW_55);
+            rule__BooleanVariableEquals__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableEquals__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableEquals__Group__0"
+
+
+    // $ANTLR start "rule__BooleanVariableEquals__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9626:1: rule__BooleanVariableEquals__Group__0__Impl : ( ( rule__BooleanVariableEquals__KeyAssignment_0 ) ) ;
+    public final void rule__BooleanVariableEquals__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9630:1: ( ( ( rule__BooleanVariableEquals__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9631:1: ( ( rule__BooleanVariableEquals__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9631:1: ( ( rule__BooleanVariableEquals__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9632:2: ( rule__BooleanVariableEquals__KeyAssignment_0 )
+            {
+             before(grammarAccess.getBooleanVariableEqualsAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9633:2: ( rule__BooleanVariableEquals__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9633:3: rule__BooleanVariableEquals__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableEquals__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableEqualsAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableEquals__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableEquals__Group__1"
+    // InternalTestgeneratorDSL.g:9641:1: rule__BooleanVariableEquals__Group__1 : rule__BooleanVariableEquals__Group__1__Impl rule__BooleanVariableEquals__Group__2 ;
+    public final void rule__BooleanVariableEquals__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9645:1: ( rule__BooleanVariableEquals__Group__1__Impl rule__BooleanVariableEquals__Group__2 )
+            // InternalTestgeneratorDSL.g:9646:2: rule__BooleanVariableEquals__Group__1__Impl rule__BooleanVariableEquals__Group__2
+            {
+            pushFollow(FOLLOW_39);
+            rule__BooleanVariableEquals__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableEquals__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableEquals__Group__1"
+
+
+    // $ANTLR start "rule__BooleanVariableEquals__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9653:1: rule__BooleanVariableEquals__Group__1__Impl : ( '==' ) ;
+    public final void rule__BooleanVariableEquals__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9657:1: ( ( '==' ) )
+            // InternalTestgeneratorDSL.g:9658:1: ( '==' )
+            {
+            // InternalTestgeneratorDSL.g:9658:1: ( '==' )
+            // InternalTestgeneratorDSL.g:9659:2: '=='
+            {
+             before(grammarAccess.getBooleanVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); 
+            match(input,18,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableEquals__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableEquals__Group__2"
+    // InternalTestgeneratorDSL.g:9668:1: rule__BooleanVariableEquals__Group__2 : rule__BooleanVariableEquals__Group__2__Impl ;
+    public final void rule__BooleanVariableEquals__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9672:1: ( rule__BooleanVariableEquals__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9673:2: rule__BooleanVariableEquals__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableEquals__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableEquals__Group__2"
+
+
+    // $ANTLR start "rule__BooleanVariableEquals__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9679:1: rule__BooleanVariableEquals__Group__2__Impl : ( ( rule__BooleanVariableEquals__ValueAssignment_2 ) ) ;
+    public final void rule__BooleanVariableEquals__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9683:1: ( ( ( rule__BooleanVariableEquals__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9684:1: ( ( rule__BooleanVariableEquals__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9684:1: ( ( rule__BooleanVariableEquals__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9685:2: ( rule__BooleanVariableEquals__ValueAssignment_2 )
+            {
+             before(grammarAccess.getBooleanVariableEqualsAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9686:2: ( rule__BooleanVariableEquals__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9686:3: rule__BooleanVariableEquals__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableEquals__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableEqualsAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableEquals__Group__2__Impl"
+
+
+    // $ANTLR start "rule__StringVariableNotEquals__Group__0"
+    // InternalTestgeneratorDSL.g:9695:1: rule__StringVariableNotEquals__Group__0 : rule__StringVariableNotEquals__Group__0__Impl rule__StringVariableNotEquals__Group__1 ;
+    public final void rule__StringVariableNotEquals__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9699:1: ( rule__StringVariableNotEquals__Group__0__Impl rule__StringVariableNotEquals__Group__1 )
+            // InternalTestgeneratorDSL.g:9700:2: rule__StringVariableNotEquals__Group__0__Impl rule__StringVariableNotEquals__Group__1
+            {
+            pushFollow(FOLLOW_56);
+            rule__StringVariableNotEquals__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariableNotEquals__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableNotEquals__Group__0"
+
+
+    // $ANTLR start "rule__StringVariableNotEquals__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9707:1: rule__StringVariableNotEquals__Group__0__Impl : ( ( rule__StringVariableNotEquals__KeyAssignment_0 ) ) ;
+    public final void rule__StringVariableNotEquals__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9711:1: ( ( ( rule__StringVariableNotEquals__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9712:1: ( ( rule__StringVariableNotEquals__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9712:1: ( ( rule__StringVariableNotEquals__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9713:2: ( rule__StringVariableNotEquals__KeyAssignment_0 )
+            {
+             before(grammarAccess.getStringVariableNotEqualsAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9714:2: ( rule__StringVariableNotEquals__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9714:3: rule__StringVariableNotEquals__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableNotEquals__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableNotEqualsAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableNotEquals__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StringVariableNotEquals__Group__1"
+    // InternalTestgeneratorDSL.g:9722:1: rule__StringVariableNotEquals__Group__1 : rule__StringVariableNotEquals__Group__1__Impl rule__StringVariableNotEquals__Group__2 ;
+    public final void rule__StringVariableNotEquals__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9726:1: ( rule__StringVariableNotEquals__Group__1__Impl rule__StringVariableNotEquals__Group__2 )
+            // InternalTestgeneratorDSL.g:9727:2: rule__StringVariableNotEquals__Group__1__Impl rule__StringVariableNotEquals__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__StringVariableNotEquals__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringVariableNotEquals__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableNotEquals__Group__1"
+
+
+    // $ANTLR start "rule__StringVariableNotEquals__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9734:1: rule__StringVariableNotEquals__Group__1__Impl : ( '!=' ) ;
+    public final void rule__StringVariableNotEquals__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9738:1: ( ( '!=' ) )
+            // InternalTestgeneratorDSL.g:9739:1: ( '!=' )
+            {
+            // InternalTestgeneratorDSL.g:9739:1: ( '!=' )
+            // InternalTestgeneratorDSL.g:9740:2: '!='
+            {
+             before(grammarAccess.getStringVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); 
+            match(input,19,FOLLOW_2); 
+             after(grammarAccess.getStringVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableNotEquals__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StringVariableNotEquals__Group__2"
+    // InternalTestgeneratorDSL.g:9749:1: rule__StringVariableNotEquals__Group__2 : rule__StringVariableNotEquals__Group__2__Impl ;
+    public final void rule__StringVariableNotEquals__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9753:1: ( rule__StringVariableNotEquals__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9754:2: rule__StringVariableNotEquals__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableNotEquals__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableNotEquals__Group__2"
+
+
+    // $ANTLR start "rule__StringVariableNotEquals__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9760:1: rule__StringVariableNotEquals__Group__2__Impl : ( ( rule__StringVariableNotEquals__ValueAssignment_2 ) ) ;
+    public final void rule__StringVariableNotEquals__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9764:1: ( ( ( rule__StringVariableNotEquals__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9765:1: ( ( rule__StringVariableNotEquals__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9765:1: ( ( rule__StringVariableNotEquals__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9766:2: ( rule__StringVariableNotEquals__ValueAssignment_2 )
+            {
+             before(grammarAccess.getStringVariableNotEqualsAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9767:2: ( rule__StringVariableNotEquals__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9767:3: rule__StringVariableNotEquals__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringVariableNotEquals__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringVariableNotEqualsAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableNotEquals__Group__2__Impl"
+
+
+    // $ANTLR start "rule__IntVariableNotEquals__Group__0"
+    // InternalTestgeneratorDSL.g:9776:1: rule__IntVariableNotEquals__Group__0 : rule__IntVariableNotEquals__Group__0__Impl rule__IntVariableNotEquals__Group__1 ;
+    public final void rule__IntVariableNotEquals__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9780:1: ( rule__IntVariableNotEquals__Group__0__Impl rule__IntVariableNotEquals__Group__1 )
+            // InternalTestgeneratorDSL.g:9781:2: rule__IntVariableNotEquals__Group__0__Impl rule__IntVariableNotEquals__Group__1
+            {
+            pushFollow(FOLLOW_56);
+            rule__IntVariableNotEquals__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariableNotEquals__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableNotEquals__Group__0"
+
+
+    // $ANTLR start "rule__IntVariableNotEquals__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9788:1: rule__IntVariableNotEquals__Group__0__Impl : ( ( rule__IntVariableNotEquals__KeyAssignment_0 ) ) ;
+    public final void rule__IntVariableNotEquals__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9792:1: ( ( ( rule__IntVariableNotEquals__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9793:1: ( ( rule__IntVariableNotEquals__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9793:1: ( ( rule__IntVariableNotEquals__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9794:2: ( rule__IntVariableNotEquals__KeyAssignment_0 )
+            {
+             before(grammarAccess.getIntVariableNotEqualsAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9795:2: ( rule__IntVariableNotEquals__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9795:3: rule__IntVariableNotEquals__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableNotEquals__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableNotEqualsAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableNotEquals__Group__0__Impl"
+
+
+    // $ANTLR start "rule__IntVariableNotEquals__Group__1"
+    // InternalTestgeneratorDSL.g:9803:1: rule__IntVariableNotEquals__Group__1 : rule__IntVariableNotEquals__Group__1__Impl rule__IntVariableNotEquals__Group__2 ;
+    public final void rule__IntVariableNotEquals__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9807:1: ( rule__IntVariableNotEquals__Group__1__Impl rule__IntVariableNotEquals__Group__2 )
+            // InternalTestgeneratorDSL.g:9808:2: rule__IntVariableNotEquals__Group__1__Impl rule__IntVariableNotEquals__Group__2
+            {
+            pushFollow(FOLLOW_37);
+            rule__IntVariableNotEquals__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntVariableNotEquals__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableNotEquals__Group__1"
+
+
+    // $ANTLR start "rule__IntVariableNotEquals__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9815:1: rule__IntVariableNotEquals__Group__1__Impl : ( '!=' ) ;
+    public final void rule__IntVariableNotEquals__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9819:1: ( ( '!=' ) )
+            // InternalTestgeneratorDSL.g:9820:1: ( '!=' )
+            {
+            // InternalTestgeneratorDSL.g:9820:1: ( '!=' )
+            // InternalTestgeneratorDSL.g:9821:2: '!='
+            {
+             before(grammarAccess.getIntVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); 
+            match(input,19,FOLLOW_2); 
+             after(grammarAccess.getIntVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableNotEquals__Group__1__Impl"
+
+
+    // $ANTLR start "rule__IntVariableNotEquals__Group__2"
+    // InternalTestgeneratorDSL.g:9830:1: rule__IntVariableNotEquals__Group__2 : rule__IntVariableNotEquals__Group__2__Impl ;
+    public final void rule__IntVariableNotEquals__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9834:1: ( rule__IntVariableNotEquals__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9835:2: rule__IntVariableNotEquals__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableNotEquals__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableNotEquals__Group__2"
+
+
+    // $ANTLR start "rule__IntVariableNotEquals__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9841:1: rule__IntVariableNotEquals__Group__2__Impl : ( ( rule__IntVariableNotEquals__ValueAssignment_2 ) ) ;
+    public final void rule__IntVariableNotEquals__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9845:1: ( ( ( rule__IntVariableNotEquals__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9846:1: ( ( rule__IntVariableNotEquals__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9846:1: ( ( rule__IntVariableNotEquals__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9847:2: ( rule__IntVariableNotEquals__ValueAssignment_2 )
+            {
+             before(grammarAccess.getIntVariableNotEqualsAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9848:2: ( rule__IntVariableNotEquals__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9848:3: rule__IntVariableNotEquals__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntVariableNotEquals__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntVariableNotEqualsAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableNotEquals__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableNotEquals__Group__0"
+    // InternalTestgeneratorDSL.g:9857:1: rule__BooleanVariableNotEquals__Group__0 : rule__BooleanVariableNotEquals__Group__0__Impl rule__BooleanVariableNotEquals__Group__1 ;
+    public final void rule__BooleanVariableNotEquals__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9861:1: ( rule__BooleanVariableNotEquals__Group__0__Impl rule__BooleanVariableNotEquals__Group__1 )
+            // InternalTestgeneratorDSL.g:9862:2: rule__BooleanVariableNotEquals__Group__0__Impl rule__BooleanVariableNotEquals__Group__1
+            {
+            pushFollow(FOLLOW_56);
+            rule__BooleanVariableNotEquals__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableNotEquals__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableNotEquals__Group__0"
+
+
+    // $ANTLR start "rule__BooleanVariableNotEquals__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9869:1: rule__BooleanVariableNotEquals__Group__0__Impl : ( ( rule__BooleanVariableNotEquals__KeyAssignment_0 ) ) ;
+    public final void rule__BooleanVariableNotEquals__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9873:1: ( ( ( rule__BooleanVariableNotEquals__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:9874:1: ( ( rule__BooleanVariableNotEquals__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:9874:1: ( ( rule__BooleanVariableNotEquals__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:9875:2: ( rule__BooleanVariableNotEquals__KeyAssignment_0 )
+            {
+             before(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:9876:2: ( rule__BooleanVariableNotEquals__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:9876:3: rule__BooleanVariableNotEquals__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableNotEquals__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableNotEquals__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableNotEquals__Group__1"
+    // InternalTestgeneratorDSL.g:9884:1: rule__BooleanVariableNotEquals__Group__1 : rule__BooleanVariableNotEquals__Group__1__Impl rule__BooleanVariableNotEquals__Group__2 ;
+    public final void rule__BooleanVariableNotEquals__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9888:1: ( rule__BooleanVariableNotEquals__Group__1__Impl rule__BooleanVariableNotEquals__Group__2 )
+            // InternalTestgeneratorDSL.g:9889:2: rule__BooleanVariableNotEquals__Group__1__Impl rule__BooleanVariableNotEquals__Group__2
+            {
+            pushFollow(FOLLOW_39);
+            rule__BooleanVariableNotEquals__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableNotEquals__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableNotEquals__Group__1"
+
+
+    // $ANTLR start "rule__BooleanVariableNotEquals__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9896:1: rule__BooleanVariableNotEquals__Group__1__Impl : ( '!=' ) ;
+    public final void rule__BooleanVariableNotEquals__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9900:1: ( ( '!=' ) )
+            // InternalTestgeneratorDSL.g:9901:1: ( '!=' )
+            {
+            // InternalTestgeneratorDSL.g:9901:1: ( '!=' )
+            // InternalTestgeneratorDSL.g:9902:2: '!='
+            {
+             before(grammarAccess.getBooleanVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); 
+            match(input,19,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableNotEquals__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BooleanVariableNotEquals__Group__2"
+    // InternalTestgeneratorDSL.g:9911:1: rule__BooleanVariableNotEquals__Group__2 : rule__BooleanVariableNotEquals__Group__2__Impl ;
+    public final void rule__BooleanVariableNotEquals__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9915:1: ( rule__BooleanVariableNotEquals__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:9916:2: rule__BooleanVariableNotEquals__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableNotEquals__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableNotEquals__Group__2"
+
+
+    // $ANTLR start "rule__BooleanVariableNotEquals__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:9922:1: rule__BooleanVariableNotEquals__Group__2__Impl : ( ( rule__BooleanVariableNotEquals__ValueAssignment_2 ) ) ;
+    public final void rule__BooleanVariableNotEquals__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9926:1: ( ( ( rule__BooleanVariableNotEquals__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:9927:1: ( ( rule__BooleanVariableNotEquals__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:9927:1: ( ( rule__BooleanVariableNotEquals__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:9928:2: ( rule__BooleanVariableNotEquals__ValueAssignment_2 )
+            {
+             before(grammarAccess.getBooleanVariableNotEqualsAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:9929:2: ( rule__BooleanVariableNotEquals__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:9929:3: rule__BooleanVariableNotEquals__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanVariableNotEquals__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanVariableNotEqualsAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableNotEquals__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__0"
+    // InternalTestgeneratorDSL.g:9938:1: rule__ExternalServiceMock__Group__0 : rule__ExternalServiceMock__Group__0__Impl rule__ExternalServiceMock__Group__1 ;
+    public final void rule__ExternalServiceMock__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9942:1: ( rule__ExternalServiceMock__Group__0__Impl rule__ExternalServiceMock__Group__1 )
+            // InternalTestgeneratorDSL.g:9943:2: rule__ExternalServiceMock__Group__0__Impl rule__ExternalServiceMock__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__ExternalServiceMock__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__0"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:9950:1: rule__ExternalServiceMock__Group__0__Impl : ( 'ExternalServiceMock' ) ;
+    public final void rule__ExternalServiceMock__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9954:1: ( ( 'ExternalServiceMock' ) )
+            // InternalTestgeneratorDSL.g:9955:1: ( 'ExternalServiceMock' )
+            {
+            // InternalTestgeneratorDSL.g:9955:1: ( 'ExternalServiceMock' )
+            // InternalTestgeneratorDSL.g:9956:2: 'ExternalServiceMock'
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getExternalServiceMockKeyword_0()); 
+            match(input,70,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceMockAccess().getExternalServiceMockKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__1"
+    // InternalTestgeneratorDSL.g:9965:1: rule__ExternalServiceMock__Group__1 : rule__ExternalServiceMock__Group__1__Impl rule__ExternalServiceMock__Group__2 ;
+    public final void rule__ExternalServiceMock__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9969:1: ( rule__ExternalServiceMock__Group__1__Impl rule__ExternalServiceMock__Group__2 )
+            // InternalTestgeneratorDSL.g:9970:2: rule__ExternalServiceMock__Group__1__Impl rule__ExternalServiceMock__Group__2
+            {
+            pushFollow(FOLLOW_47);
+            rule__ExternalServiceMock__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__1"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:9977:1: rule__ExternalServiceMock__Group__1__Impl : ( ( rule__ExternalServiceMock__NameAssignment_1 ) ) ;
+    public final void rule__ExternalServiceMock__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9981:1: ( ( ( rule__ExternalServiceMock__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:9982:1: ( ( rule__ExternalServiceMock__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:9982:1: ( ( rule__ExternalServiceMock__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:9983:2: ( rule__ExternalServiceMock__NameAssignment_1 )
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:9984:2: ( rule__ExternalServiceMock__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:9984:3: rule__ExternalServiceMock__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceMockAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__2"
+    // InternalTestgeneratorDSL.g:9992:1: rule__ExternalServiceMock__Group__2 : rule__ExternalServiceMock__Group__2__Impl rule__ExternalServiceMock__Group__3 ;
+    public final void rule__ExternalServiceMock__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:9996:1: ( rule__ExternalServiceMock__Group__2__Impl rule__ExternalServiceMock__Group__3 )
+            // InternalTestgeneratorDSL.g:9997:2: rule__ExternalServiceMock__Group__2__Impl rule__ExternalServiceMock__Group__3
+            {
+            pushFollow(FOLLOW_57);
+            rule__ExternalServiceMock__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__2"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:10004:1: rule__ExternalServiceMock__Group__2__Impl : ( 'for' ) ;
+    public final void rule__ExternalServiceMock__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10008:1: ( ( 'for' ) )
+            // InternalTestgeneratorDSL.g:10009:1: ( 'for' )
+            {
+            // InternalTestgeneratorDSL.g:10009:1: ( 'for' )
+            // InternalTestgeneratorDSL.g:10010:2: 'for'
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getForKeyword_2()); 
+            match(input,61,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceMockAccess().getForKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__3"
+    // InternalTestgeneratorDSL.g:10019:1: rule__ExternalServiceMock__Group__3 : rule__ExternalServiceMock__Group__3__Impl rule__ExternalServiceMock__Group__4 ;
+    public final void rule__ExternalServiceMock__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10023:1: ( rule__ExternalServiceMock__Group__3__Impl rule__ExternalServiceMock__Group__4 )
+            // InternalTestgeneratorDSL.g:10024:2: rule__ExternalServiceMock__Group__3__Impl rule__ExternalServiceMock__Group__4
+            {
+            pushFollow(FOLLOW_4);
+            rule__ExternalServiceMock__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__3"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:10031:1: rule__ExternalServiceMock__Group__3__Impl : ( 'topic' ) ;
+    public final void rule__ExternalServiceMock__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10035:1: ( ( 'topic' ) )
+            // InternalTestgeneratorDSL.g:10036:1: ( 'topic' )
+            {
+            // InternalTestgeneratorDSL.g:10036:1: ( 'topic' )
+            // InternalTestgeneratorDSL.g:10037:2: 'topic'
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getTopicKeyword_3()); 
+            match(input,71,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceMockAccess().getTopicKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__4"
+    // InternalTestgeneratorDSL.g:10046:1: rule__ExternalServiceMock__Group__4 : rule__ExternalServiceMock__Group__4__Impl rule__ExternalServiceMock__Group__5 ;
+    public final void rule__ExternalServiceMock__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10050:1: ( rule__ExternalServiceMock__Group__4__Impl rule__ExternalServiceMock__Group__5 )
+            // InternalTestgeneratorDSL.g:10051:2: rule__ExternalServiceMock__Group__4__Impl rule__ExternalServiceMock__Group__5
+            {
+            pushFollow(FOLLOW_10);
+            rule__ExternalServiceMock__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__4"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:10058:1: rule__ExternalServiceMock__Group__4__Impl : ( ( rule__ExternalServiceMock__ExternalTopicAssignment_4 ) ) ;
+    public final void rule__ExternalServiceMock__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10062:1: ( ( ( rule__ExternalServiceMock__ExternalTopicAssignment_4 ) ) )
+            // InternalTestgeneratorDSL.g:10063:1: ( ( rule__ExternalServiceMock__ExternalTopicAssignment_4 ) )
+            {
+            // InternalTestgeneratorDSL.g:10063:1: ( ( rule__ExternalServiceMock__ExternalTopicAssignment_4 ) )
+            // InternalTestgeneratorDSL.g:10064:2: ( rule__ExternalServiceMock__ExternalTopicAssignment_4 )
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getExternalTopicAssignment_4()); 
+            // InternalTestgeneratorDSL.g:10065:2: ( rule__ExternalServiceMock__ExternalTopicAssignment_4 )
+            // InternalTestgeneratorDSL.g:10065:3: rule__ExternalServiceMock__ExternalTopicAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__ExternalTopicAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceMockAccess().getExternalTopicAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__5"
+    // InternalTestgeneratorDSL.g:10073:1: rule__ExternalServiceMock__Group__5 : rule__ExternalServiceMock__Group__5__Impl rule__ExternalServiceMock__Group__6 ;
+    public final void rule__ExternalServiceMock__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10077:1: ( rule__ExternalServiceMock__Group__5__Impl rule__ExternalServiceMock__Group__6 )
+            // InternalTestgeneratorDSL.g:10078:2: rule__ExternalServiceMock__Group__5__Impl rule__ExternalServiceMock__Group__6
+            {
+            pushFollow(FOLLOW_10);
+            rule__ExternalServiceMock__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__5"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:10085:1: rule__ExternalServiceMock__Group__5__Impl : ( ( rule__ExternalServiceMock__Group_5__0 )? ) ;
+    public final void rule__ExternalServiceMock__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10089:1: ( ( ( rule__ExternalServiceMock__Group_5__0 )? ) )
+            // InternalTestgeneratorDSL.g:10090:1: ( ( rule__ExternalServiceMock__Group_5__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:10090:1: ( ( rule__ExternalServiceMock__Group_5__0 )? )
+            // InternalTestgeneratorDSL.g:10091:2: ( rule__ExternalServiceMock__Group_5__0 )?
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getGroup_5()); 
+            // InternalTestgeneratorDSL.g:10092:2: ( rule__ExternalServiceMock__Group_5__0 )?
+            int alt56=2;
+            int LA56_0 = input.LA(1);
+
+            if ( (LA56_0==25) ) {
+                alt56=1;
+            }
+            switch (alt56) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:10092:3: rule__ExternalServiceMock__Group_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__ExternalServiceMock__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getExternalServiceMockAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__5__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__6"
+    // InternalTestgeneratorDSL.g:10100:1: rule__ExternalServiceMock__Group__6 : rule__ExternalServiceMock__Group__6__Impl ;
+    public final void rule__ExternalServiceMock__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10104:1: ( rule__ExternalServiceMock__Group__6__Impl )
+            // InternalTestgeneratorDSL.g:10105:2: rule__ExternalServiceMock__Group__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__6"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:10111:1: rule__ExternalServiceMock__Group__6__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__ExternalServiceMock__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10115:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:10116:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:10116:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:10117:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_6()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group__6__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group_5__0"
+    // InternalTestgeneratorDSL.g:10127:1: rule__ExternalServiceMock__Group_5__0 : rule__ExternalServiceMock__Group_5__0__Impl rule__ExternalServiceMock__Group_5__1 ;
+    public final void rule__ExternalServiceMock__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10131:1: ( rule__ExternalServiceMock__Group_5__0__Impl rule__ExternalServiceMock__Group_5__1 )
+            // InternalTestgeneratorDSL.g:10132:2: rule__ExternalServiceMock__Group_5__0__Impl rule__ExternalServiceMock__Group_5__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__ExternalServiceMock__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group_5__0"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group_5__0__Impl"
+    // InternalTestgeneratorDSL.g:10139:1: rule__ExternalServiceMock__Group_5__0__Impl : ( ( rule__ExternalServiceMock__MockingRulesAssignment_5_0 ) ) ;
+    public final void rule__ExternalServiceMock__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10143:1: ( ( ( rule__ExternalServiceMock__MockingRulesAssignment_5_0 ) ) )
+            // InternalTestgeneratorDSL.g:10144:1: ( ( rule__ExternalServiceMock__MockingRulesAssignment_5_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:10144:1: ( ( rule__ExternalServiceMock__MockingRulesAssignment_5_0 ) )
+            // InternalTestgeneratorDSL.g:10145:2: ( rule__ExternalServiceMock__MockingRulesAssignment_5_0 )
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_0()); 
+            // InternalTestgeneratorDSL.g:10146:2: ( rule__ExternalServiceMock__MockingRulesAssignment_5_0 )
+            // InternalTestgeneratorDSL.g:10146:3: rule__ExternalServiceMock__MockingRulesAssignment_5_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__MockingRulesAssignment_5_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group_5__1"
+    // InternalTestgeneratorDSL.g:10154:1: rule__ExternalServiceMock__Group_5__1 : rule__ExternalServiceMock__Group_5__1__Impl ;
+    public final void rule__ExternalServiceMock__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10158:1: ( rule__ExternalServiceMock__Group_5__1__Impl )
+            // InternalTestgeneratorDSL.g:10159:2: rule__ExternalServiceMock__Group_5__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group_5__1"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group_5__1__Impl"
+    // InternalTestgeneratorDSL.g:10165:1: rule__ExternalServiceMock__Group_5__1__Impl : ( ( rule__ExternalServiceMock__Group_5_1__0 )* ) ;
+    public final void rule__ExternalServiceMock__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10169:1: ( ( ( rule__ExternalServiceMock__Group_5_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:10170:1: ( ( rule__ExternalServiceMock__Group_5_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:10170:1: ( ( rule__ExternalServiceMock__Group_5_1__0 )* )
+            // InternalTestgeneratorDSL.g:10171:2: ( rule__ExternalServiceMock__Group_5_1__0 )*
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getGroup_5_1()); 
+            // InternalTestgeneratorDSL.g:10172:2: ( rule__ExternalServiceMock__Group_5_1__0 )*
+            loop57:
+            do {
+                int alt57=2;
+                int LA57_0 = input.LA(1);
+
+                if ( (LA57_0==RULE_SEPARATOR) ) {
+                    alt57=1;
+                }
+
+
+                switch (alt57) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:10172:3: rule__ExternalServiceMock__Group_5_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__ExternalServiceMock__Group_5_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop57;
+                }
+            } while (true);
+
+             after(grammarAccess.getExternalServiceMockAccess().getGroup_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group_5_1__0"
+    // InternalTestgeneratorDSL.g:10181:1: rule__ExternalServiceMock__Group_5_1__0 : rule__ExternalServiceMock__Group_5_1__0__Impl rule__ExternalServiceMock__Group_5_1__1 ;
+    public final void rule__ExternalServiceMock__Group_5_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10185:1: ( rule__ExternalServiceMock__Group_5_1__0__Impl rule__ExternalServiceMock__Group_5_1__1 )
+            // InternalTestgeneratorDSL.g:10186:2: rule__ExternalServiceMock__Group_5_1__0__Impl rule__ExternalServiceMock__Group_5_1__1
+            {
+            pushFollow(FOLLOW_5);
+            rule__ExternalServiceMock__Group_5_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group_5_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group_5_1__0"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group_5_1__0__Impl"
+    // InternalTestgeneratorDSL.g:10193:1: rule__ExternalServiceMock__Group_5_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__ExternalServiceMock__Group_5_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10197:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:10198:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:10198:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:10199:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getSEPARATORTerminalRuleCall_5_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceMockAccess().getSEPARATORTerminalRuleCall_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group_5_1__0__Impl"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group_5_1__1"
+    // InternalTestgeneratorDSL.g:10208:1: rule__ExternalServiceMock__Group_5_1__1 : rule__ExternalServiceMock__Group_5_1__1__Impl ;
+    public final void rule__ExternalServiceMock__Group_5_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10212:1: ( rule__ExternalServiceMock__Group_5_1__1__Impl )
+            // InternalTestgeneratorDSL.g:10213:2: rule__ExternalServiceMock__Group_5_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__Group_5_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group_5_1__1"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__Group_5_1__1__Impl"
+    // InternalTestgeneratorDSL.g:10219:1: rule__ExternalServiceMock__Group_5_1__1__Impl : ( ( rule__ExternalServiceMock__MockingRulesAssignment_5_1_1 ) ) ;
+    public final void rule__ExternalServiceMock__Group_5_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10223:1: ( ( ( rule__ExternalServiceMock__MockingRulesAssignment_5_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:10224:1: ( ( rule__ExternalServiceMock__MockingRulesAssignment_5_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:10224:1: ( ( rule__ExternalServiceMock__MockingRulesAssignment_5_1_1 ) )
+            // InternalTestgeneratorDSL.g:10225:2: ( rule__ExternalServiceMock__MockingRulesAssignment_5_1_1 )
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_1_1()); 
+            // InternalTestgeneratorDSL.g:10226:2: ( rule__ExternalServiceMock__MockingRulesAssignment_5_1_1 )
+            // InternalTestgeneratorDSL.g:10226:3: rule__ExternalServiceMock__MockingRulesAssignment_5_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ExternalServiceMock__MockingRulesAssignment_5_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getExternalServiceMockAccess().getMockingRulesAssignment_5_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__Group_5_1__1__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__0"
+    // InternalTestgeneratorDSL.g:10235:1: rule__DelegateMock__Group__0 : rule__DelegateMock__Group__0__Impl rule__DelegateMock__Group__1 ;
+    public final void rule__DelegateMock__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10239:1: ( rule__DelegateMock__Group__0__Impl rule__DelegateMock__Group__1 )
+            // InternalTestgeneratorDSL.g:10240:2: rule__DelegateMock__Group__0__Impl rule__DelegateMock__Group__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__DelegateMock__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__0"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:10247:1: rule__DelegateMock__Group__0__Impl : ( 'DelegateMock' ) ;
+    public final void rule__DelegateMock__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10251:1: ( ( 'DelegateMock' ) )
+            // InternalTestgeneratorDSL.g:10252:1: ( 'DelegateMock' )
+            {
+            // InternalTestgeneratorDSL.g:10252:1: ( 'DelegateMock' )
+            // InternalTestgeneratorDSL.g:10253:2: 'DelegateMock'
+            {
+             before(grammarAccess.getDelegateMockAccess().getDelegateMockKeyword_0()); 
+            match(input,72,FOLLOW_2); 
+             after(grammarAccess.getDelegateMockAccess().getDelegateMockKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__0__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__1"
+    // InternalTestgeneratorDSL.g:10262:1: rule__DelegateMock__Group__1 : rule__DelegateMock__Group__1__Impl rule__DelegateMock__Group__2 ;
+    public final void rule__DelegateMock__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10266:1: ( rule__DelegateMock__Group__1__Impl rule__DelegateMock__Group__2 )
+            // InternalTestgeneratorDSL.g:10267:2: rule__DelegateMock__Group__1__Impl rule__DelegateMock__Group__2
+            {
+            pushFollow(FOLLOW_47);
+            rule__DelegateMock__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__1"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:10274:1: rule__DelegateMock__Group__1__Impl : ( ( rule__DelegateMock__NameAssignment_1 ) ) ;
+    public final void rule__DelegateMock__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10278:1: ( ( ( rule__DelegateMock__NameAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:10279:1: ( ( rule__DelegateMock__NameAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:10279:1: ( ( rule__DelegateMock__NameAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:10280:2: ( rule__DelegateMock__NameAssignment_1 )
+            {
+             before(grammarAccess.getDelegateMockAccess().getNameAssignment_1()); 
+            // InternalTestgeneratorDSL.g:10281:2: ( rule__DelegateMock__NameAssignment_1 )
+            // InternalTestgeneratorDSL.g:10281:3: rule__DelegateMock__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateMockAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__1__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__2"
+    // InternalTestgeneratorDSL.g:10289:1: rule__DelegateMock__Group__2 : rule__DelegateMock__Group__2__Impl rule__DelegateMock__Group__3 ;
+    public final void rule__DelegateMock__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10293:1: ( rule__DelegateMock__Group__2__Impl rule__DelegateMock__Group__3 )
+            // InternalTestgeneratorDSL.g:10294:2: rule__DelegateMock__Group__2__Impl rule__DelegateMock__Group__3
+            {
+            pushFollow(FOLLOW_4);
+            rule__DelegateMock__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__2"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:10301:1: rule__DelegateMock__Group__2__Impl : ( 'for' ) ;
+    public final void rule__DelegateMock__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10305:1: ( ( 'for' ) )
+            // InternalTestgeneratorDSL.g:10306:1: ( 'for' )
+            {
+            // InternalTestgeneratorDSL.g:10306:1: ( 'for' )
+            // InternalTestgeneratorDSL.g:10307:2: 'for'
+            {
+             before(grammarAccess.getDelegateMockAccess().getForKeyword_2()); 
+            match(input,61,FOLLOW_2); 
+             after(grammarAccess.getDelegateMockAccess().getForKeyword_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__2__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__3"
+    // InternalTestgeneratorDSL.g:10316:1: rule__DelegateMock__Group__3 : rule__DelegateMock__Group__3__Impl rule__DelegateMock__Group__4 ;
+    public final void rule__DelegateMock__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10320:1: ( rule__DelegateMock__Group__3__Impl rule__DelegateMock__Group__4 )
+            // InternalTestgeneratorDSL.g:10321:2: rule__DelegateMock__Group__3__Impl rule__DelegateMock__Group__4
+            {
+            pushFollow(FOLLOW_5);
+            rule__DelegateMock__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__3"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:10328:1: rule__DelegateMock__Group__3__Impl : ( ( rule__DelegateMock__ServiceTaskReferenceAssignment_3 ) ) ;
+    public final void rule__DelegateMock__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10332:1: ( ( ( rule__DelegateMock__ServiceTaskReferenceAssignment_3 ) ) )
+            // InternalTestgeneratorDSL.g:10333:1: ( ( rule__DelegateMock__ServiceTaskReferenceAssignment_3 ) )
+            {
+            // InternalTestgeneratorDSL.g:10333:1: ( ( rule__DelegateMock__ServiceTaskReferenceAssignment_3 ) )
+            // InternalTestgeneratorDSL.g:10334:2: ( rule__DelegateMock__ServiceTaskReferenceAssignment_3 )
+            {
+             before(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceAssignment_3()); 
+            // InternalTestgeneratorDSL.g:10335:2: ( rule__DelegateMock__ServiceTaskReferenceAssignment_3 )
+            // InternalTestgeneratorDSL.g:10335:3: rule__DelegateMock__ServiceTaskReferenceAssignment_3
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__ServiceTaskReferenceAssignment_3();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceAssignment_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__3__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__4"
+    // InternalTestgeneratorDSL.g:10343:1: rule__DelegateMock__Group__4 : rule__DelegateMock__Group__4__Impl rule__DelegateMock__Group__5 ;
+    public final void rule__DelegateMock__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10347:1: ( rule__DelegateMock__Group__4__Impl rule__DelegateMock__Group__5 )
+            // InternalTestgeneratorDSL.g:10348:2: rule__DelegateMock__Group__4__Impl rule__DelegateMock__Group__5
+            {
+            pushFollow(FOLLOW_27);
+            rule__DelegateMock__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__4"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:10355:1: rule__DelegateMock__Group__4__Impl : ( 'with' ) ;
+    public final void rule__DelegateMock__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10359:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:10360:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:10360:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:10361:2: 'with'
+            {
+             before(grammarAccess.getDelegateMockAccess().getWithKeyword_4()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getDelegateMockAccess().getWithKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__4__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__5"
+    // InternalTestgeneratorDSL.g:10370:1: rule__DelegateMock__Group__5 : rule__DelegateMock__Group__5__Impl rule__DelegateMock__Group__6 ;
+    public final void rule__DelegateMock__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10374:1: ( rule__DelegateMock__Group__5__Impl rule__DelegateMock__Group__6 )
+            // InternalTestgeneratorDSL.g:10375:2: rule__DelegateMock__Group__5__Impl rule__DelegateMock__Group__6
+            {
+            pushFollow(FOLLOW_7);
+            rule__DelegateMock__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__5"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:10382:1: rule__DelegateMock__Group__5__Impl : ( 'delegate' ) ;
+    public final void rule__DelegateMock__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10386:1: ( ( 'delegate' ) )
+            // InternalTestgeneratorDSL.g:10387:1: ( 'delegate' )
+            {
+            // InternalTestgeneratorDSL.g:10387:1: ( 'delegate' )
+            // InternalTestgeneratorDSL.g:10388:2: 'delegate'
+            {
+             before(grammarAccess.getDelegateMockAccess().getDelegateKeyword_5()); 
+            match(input,39,FOLLOW_2); 
+             after(grammarAccess.getDelegateMockAccess().getDelegateKeyword_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__5__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__6"
+    // InternalTestgeneratorDSL.g:10397:1: rule__DelegateMock__Group__6 : rule__DelegateMock__Group__6__Impl rule__DelegateMock__Group__7 ;
+    public final void rule__DelegateMock__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10401:1: ( rule__DelegateMock__Group__6__Impl rule__DelegateMock__Group__7 )
+            // InternalTestgeneratorDSL.g:10402:2: rule__DelegateMock__Group__6__Impl rule__DelegateMock__Group__7
+            {
+            pushFollow(FOLLOW_10);
+            rule__DelegateMock__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__6"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:10409:1: rule__DelegateMock__Group__6__Impl : ( ( rule__DelegateMock__DelegateClassAssignment_6 ) ) ;
+    public final void rule__DelegateMock__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10413:1: ( ( ( rule__DelegateMock__DelegateClassAssignment_6 ) ) )
+            // InternalTestgeneratorDSL.g:10414:1: ( ( rule__DelegateMock__DelegateClassAssignment_6 ) )
+            {
+            // InternalTestgeneratorDSL.g:10414:1: ( ( rule__DelegateMock__DelegateClassAssignment_6 ) )
+            // InternalTestgeneratorDSL.g:10415:2: ( rule__DelegateMock__DelegateClassAssignment_6 )
+            {
+             before(grammarAccess.getDelegateMockAccess().getDelegateClassAssignment_6()); 
+            // InternalTestgeneratorDSL.g:10416:2: ( rule__DelegateMock__DelegateClassAssignment_6 )
+            // InternalTestgeneratorDSL.g:10416:3: rule__DelegateMock__DelegateClassAssignment_6
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__DelegateClassAssignment_6();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateMockAccess().getDelegateClassAssignment_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__6__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__7"
+    // InternalTestgeneratorDSL.g:10424:1: rule__DelegateMock__Group__7 : rule__DelegateMock__Group__7__Impl rule__DelegateMock__Group__8 ;
+    public final void rule__DelegateMock__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10428:1: ( rule__DelegateMock__Group__7__Impl rule__DelegateMock__Group__8 )
+            // InternalTestgeneratorDSL.g:10429:2: rule__DelegateMock__Group__7__Impl rule__DelegateMock__Group__8
+            {
+            pushFollow(FOLLOW_10);
+            rule__DelegateMock__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__7"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:10436:1: rule__DelegateMock__Group__7__Impl : ( ( rule__DelegateMock__Group_7__0 )? ) ;
+    public final void rule__DelegateMock__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10440:1: ( ( ( rule__DelegateMock__Group_7__0 )? ) )
+            // InternalTestgeneratorDSL.g:10441:1: ( ( rule__DelegateMock__Group_7__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:10441:1: ( ( rule__DelegateMock__Group_7__0 )? )
+            // InternalTestgeneratorDSL.g:10442:2: ( rule__DelegateMock__Group_7__0 )?
+            {
+             before(grammarAccess.getDelegateMockAccess().getGroup_7()); 
+            // InternalTestgeneratorDSL.g:10443:2: ( rule__DelegateMock__Group_7__0 )?
+            int alt58=2;
+            int LA58_0 = input.LA(1);
+
+            if ( (LA58_0==25) ) {
+                alt58=1;
+            }
+            switch (alt58) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:10443:3: rule__DelegateMock__Group_7__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__DelegateMock__Group_7__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDelegateMockAccess().getGroup_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__7__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__8"
+    // InternalTestgeneratorDSL.g:10451:1: rule__DelegateMock__Group__8 : rule__DelegateMock__Group__8__Impl ;
+    public final void rule__DelegateMock__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10455:1: ( rule__DelegateMock__Group__8__Impl )
+            // InternalTestgeneratorDSL.g:10456:2: rule__DelegateMock__Group__8__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group__8__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__8"
+
+
+    // $ANTLR start "rule__DelegateMock__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:10462:1: rule__DelegateMock__Group__8__Impl : ( RULE_DECLARATION_FINISHED ) ;
+    public final void rule__DelegateMock__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10466:1: ( ( RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:10467:1: ( RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:10467:1: ( RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:10468:2: RULE_DECLARATION_FINISHED
+            {
+             before(grammarAccess.getDelegateMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+            match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+             after(grammarAccess.getDelegateMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group__8__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group_7__0"
+    // InternalTestgeneratorDSL.g:10478:1: rule__DelegateMock__Group_7__0 : rule__DelegateMock__Group_7__0__Impl rule__DelegateMock__Group_7__1 ;
+    public final void rule__DelegateMock__Group_7__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10482:1: ( rule__DelegateMock__Group_7__0__Impl rule__DelegateMock__Group_7__1 )
+            // InternalTestgeneratorDSL.g:10483:2: rule__DelegateMock__Group_7__0__Impl rule__DelegateMock__Group_7__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__DelegateMock__Group_7__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group_7__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group_7__0"
+
+
+    // $ANTLR start "rule__DelegateMock__Group_7__0__Impl"
+    // InternalTestgeneratorDSL.g:10490:1: rule__DelegateMock__Group_7__0__Impl : ( ( rule__DelegateMock__ManualMocksAssignment_7_0 ) ) ;
+    public final void rule__DelegateMock__Group_7__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10494:1: ( ( ( rule__DelegateMock__ManualMocksAssignment_7_0 ) ) )
+            // InternalTestgeneratorDSL.g:10495:1: ( ( rule__DelegateMock__ManualMocksAssignment_7_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:10495:1: ( ( rule__DelegateMock__ManualMocksAssignment_7_0 ) )
+            // InternalTestgeneratorDSL.g:10496:2: ( rule__DelegateMock__ManualMocksAssignment_7_0 )
+            {
+             before(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_0()); 
+            // InternalTestgeneratorDSL.g:10497:2: ( rule__DelegateMock__ManualMocksAssignment_7_0 )
+            // InternalTestgeneratorDSL.g:10497:3: rule__DelegateMock__ManualMocksAssignment_7_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__ManualMocksAssignment_7_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group_7__0__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group_7__1"
+    // InternalTestgeneratorDSL.g:10505:1: rule__DelegateMock__Group_7__1 : rule__DelegateMock__Group_7__1__Impl ;
+    public final void rule__DelegateMock__Group_7__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10509:1: ( rule__DelegateMock__Group_7__1__Impl )
+            // InternalTestgeneratorDSL.g:10510:2: rule__DelegateMock__Group_7__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group_7__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group_7__1"
+
+
+    // $ANTLR start "rule__DelegateMock__Group_7__1__Impl"
+    // InternalTestgeneratorDSL.g:10516:1: rule__DelegateMock__Group_7__1__Impl : ( ( rule__DelegateMock__Group_7_1__0 )* ) ;
+    public final void rule__DelegateMock__Group_7__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10520:1: ( ( ( rule__DelegateMock__Group_7_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:10521:1: ( ( rule__DelegateMock__Group_7_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:10521:1: ( ( rule__DelegateMock__Group_7_1__0 )* )
+            // InternalTestgeneratorDSL.g:10522:2: ( rule__DelegateMock__Group_7_1__0 )*
+            {
+             before(grammarAccess.getDelegateMockAccess().getGroup_7_1()); 
+            // InternalTestgeneratorDSL.g:10523:2: ( rule__DelegateMock__Group_7_1__0 )*
+            loop59:
+            do {
+                int alt59=2;
+                int LA59_0 = input.LA(1);
+
+                if ( (LA59_0==RULE_SEPARATOR) ) {
+                    alt59=1;
+                }
+
+
+                switch (alt59) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:10523:3: rule__DelegateMock__Group_7_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__DelegateMock__Group_7_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop59;
+                }
+            } while (true);
+
+             after(grammarAccess.getDelegateMockAccess().getGroup_7_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group_7__1__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group_7_1__0"
+    // InternalTestgeneratorDSL.g:10532:1: rule__DelegateMock__Group_7_1__0 : rule__DelegateMock__Group_7_1__0__Impl rule__DelegateMock__Group_7_1__1 ;
+    public final void rule__DelegateMock__Group_7_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10536:1: ( rule__DelegateMock__Group_7_1__0__Impl rule__DelegateMock__Group_7_1__1 )
+            // InternalTestgeneratorDSL.g:10537:2: rule__DelegateMock__Group_7_1__0__Impl rule__DelegateMock__Group_7_1__1
+            {
+            pushFollow(FOLLOW_5);
+            rule__DelegateMock__Group_7_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group_7_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group_7_1__0"
+
+
+    // $ANTLR start "rule__DelegateMock__Group_7_1__0__Impl"
+    // InternalTestgeneratorDSL.g:10544:1: rule__DelegateMock__Group_7_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__DelegateMock__Group_7_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10548:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:10549:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:10549:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:10550:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getDelegateMockAccess().getSEPARATORTerminalRuleCall_7_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getDelegateMockAccess().getSEPARATORTerminalRuleCall_7_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group_7_1__0__Impl"
+
+
+    // $ANTLR start "rule__DelegateMock__Group_7_1__1"
+    // InternalTestgeneratorDSL.g:10559:1: rule__DelegateMock__Group_7_1__1 : rule__DelegateMock__Group_7_1__1__Impl ;
+    public final void rule__DelegateMock__Group_7_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10563:1: ( rule__DelegateMock__Group_7_1__1__Impl )
+            // InternalTestgeneratorDSL.g:10564:2: rule__DelegateMock__Group_7_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__Group_7_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group_7_1__1"
+
+
+    // $ANTLR start "rule__DelegateMock__Group_7_1__1__Impl"
+    // InternalTestgeneratorDSL.g:10570:1: rule__DelegateMock__Group_7_1__1__Impl : ( ( rule__DelegateMock__ManualMocksAssignment_7_1_1 ) ) ;
+    public final void rule__DelegateMock__Group_7_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10574:1: ( ( ( rule__DelegateMock__ManualMocksAssignment_7_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:10575:1: ( ( rule__DelegateMock__ManualMocksAssignment_7_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:10575:1: ( ( rule__DelegateMock__ManualMocksAssignment_7_1_1 ) )
+            // InternalTestgeneratorDSL.g:10576:2: ( rule__DelegateMock__ManualMocksAssignment_7_1_1 )
+            {
+             before(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_1_1()); 
+            // InternalTestgeneratorDSL.g:10577:2: ( rule__DelegateMock__ManualMocksAssignment_7_1_1 )
+            // InternalTestgeneratorDSL.g:10577:3: rule__DelegateMock__ManualMocksAssignment_7_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__DelegateMock__ManualMocksAssignment_7_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getDelegateMockAccess().getManualMocksAssignment_7_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__Group_7_1__1__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__0"
+    // InternalTestgeneratorDSL.g:10586:1: rule__MockingRule__Group__0 : rule__MockingRule__Group__0__Impl rule__MockingRule__Group__1 ;
+    public final void rule__MockingRule__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10590:1: ( rule__MockingRule__Group__0__Impl rule__MockingRule__Group__1 )
+            // InternalTestgeneratorDSL.g:10591:2: rule__MockingRule__Group__0__Impl rule__MockingRule__Group__1
+            {
+            pushFollow(FOLLOW_58);
+            rule__MockingRule__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__0"
+
+
+    // $ANTLR start "rule__MockingRule__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:10598:1: rule__MockingRule__Group__0__Impl : ( 'with' ) ;
+    public final void rule__MockingRule__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10602:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:10603:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:10603:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:10604:2: 'with'
+            {
+             before(grammarAccess.getMockingRuleAccess().getWithKeyword_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getWithKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__0__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__1"
+    // InternalTestgeneratorDSL.g:10613:1: rule__MockingRule__Group__1 : rule__MockingRule__Group__1__Impl rule__MockingRule__Group__2 ;
+    public final void rule__MockingRule__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10617:1: ( rule__MockingRule__Group__1__Impl rule__MockingRule__Group__2 )
+            // InternalTestgeneratorDSL.g:10618:2: rule__MockingRule__Group__1__Impl rule__MockingRule__Group__2
+            {
+            pushFollow(FOLLOW_12);
+            rule__MockingRule__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__1"
+
+
+    // $ANTLR start "rule__MockingRule__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:10625:1: rule__MockingRule__Group__1__Impl : ( 'rule' ) ;
+    public final void rule__MockingRule__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10629:1: ( ( 'rule' ) )
+            // InternalTestgeneratorDSL.g:10630:1: ( 'rule' )
+            {
+            // InternalTestgeneratorDSL.g:10630:1: ( 'rule' )
+            // InternalTestgeneratorDSL.g:10631:2: 'rule'
+            {
+             before(grammarAccess.getMockingRuleAccess().getRuleKeyword_1()); 
+            match(input,73,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getRuleKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__1__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__2"
+    // InternalTestgeneratorDSL.g:10640:1: rule__MockingRule__Group__2 : rule__MockingRule__Group__2__Impl rule__MockingRule__Group__3 ;
+    public final void rule__MockingRule__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10644:1: ( rule__MockingRule__Group__2__Impl rule__MockingRule__Group__3 )
+            // InternalTestgeneratorDSL.g:10645:2: rule__MockingRule__Group__2__Impl rule__MockingRule__Group__3
+            {
+            pushFollow(FOLLOW_59);
+            rule__MockingRule__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__2"
+
+
+    // $ANTLR start "rule__MockingRule__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:10652:1: rule__MockingRule__Group__2__Impl : ( RULE_ASSOCIATION ) ;
+    public final void rule__MockingRule__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10656:1: ( ( RULE_ASSOCIATION ) )
+            // InternalTestgeneratorDSL.g:10657:1: ( RULE_ASSOCIATION )
+            {
+            // InternalTestgeneratorDSL.g:10657:1: ( RULE_ASSOCIATION )
+            // InternalTestgeneratorDSL.g:10658:2: RULE_ASSOCIATION
+            {
+             before(grammarAccess.getMockingRuleAccess().getASSOCIATIONTerminalRuleCall_2()); 
+            match(input,RULE_ASSOCIATION,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getASSOCIATIONTerminalRuleCall_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__2__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__3"
+    // InternalTestgeneratorDSL.g:10667:1: rule__MockingRule__Group__3 : rule__MockingRule__Group__3__Impl rule__MockingRule__Group__4 ;
+    public final void rule__MockingRule__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10671:1: ( rule__MockingRule__Group__3__Impl rule__MockingRule__Group__4 )
+            // InternalTestgeneratorDSL.g:10672:2: rule__MockingRule__Group__3__Impl rule__MockingRule__Group__4
+            {
+            pushFollow(FOLLOW_13);
+            rule__MockingRule__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__3"
+
+
+    // $ANTLR start "rule__MockingRule__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:10679:1: rule__MockingRule__Group__3__Impl : ( 'if' ) ;
+    public final void rule__MockingRule__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10683:1: ( ( 'if' ) )
+            // InternalTestgeneratorDSL.g:10684:1: ( 'if' )
+            {
+            // InternalTestgeneratorDSL.g:10684:1: ( 'if' )
+            // InternalTestgeneratorDSL.g:10685:2: 'if'
+            {
+             before(grammarAccess.getMockingRuleAccess().getIfKeyword_3()); 
+            match(input,74,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getIfKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__3__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__4"
+    // InternalTestgeneratorDSL.g:10694:1: rule__MockingRule__Group__4 : rule__MockingRule__Group__4__Impl rule__MockingRule__Group__5 ;
+    public final void rule__MockingRule__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10698:1: ( rule__MockingRule__Group__4__Impl rule__MockingRule__Group__5 )
+            // InternalTestgeneratorDSL.g:10699:2: rule__MockingRule__Group__4__Impl rule__MockingRule__Group__5
+            {
+            pushFollow(FOLLOW_20);
+            rule__MockingRule__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__4"
+
+
+    // $ANTLR start "rule__MockingRule__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:10706:1: rule__MockingRule__Group__4__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__MockingRule__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10710:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:10711:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:10711:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:10712:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_4()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__4__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__5"
+    // InternalTestgeneratorDSL.g:10721:1: rule__MockingRule__Group__5 : rule__MockingRule__Group__5__Impl rule__MockingRule__Group__6 ;
+    public final void rule__MockingRule__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10725:1: ( rule__MockingRule__Group__5__Impl rule__MockingRule__Group__6 )
+            // InternalTestgeneratorDSL.g:10726:2: rule__MockingRule__Group__5__Impl rule__MockingRule__Group__6
+            {
+            pushFollow(FOLLOW_20);
+            rule__MockingRule__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__5"
+
+
+    // $ANTLR start "rule__MockingRule__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:10733:1: rule__MockingRule__Group__5__Impl : ( ( rule__MockingRule__Group_5__0 )? ) ;
+    public final void rule__MockingRule__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10737:1: ( ( ( rule__MockingRule__Group_5__0 )? ) )
+            // InternalTestgeneratorDSL.g:10738:1: ( ( rule__MockingRule__Group_5__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:10738:1: ( ( rule__MockingRule__Group_5__0 )? )
+            // InternalTestgeneratorDSL.g:10739:2: ( rule__MockingRule__Group_5__0 )?
+            {
+             before(grammarAccess.getMockingRuleAccess().getGroup_5()); 
+            // InternalTestgeneratorDSL.g:10740:2: ( rule__MockingRule__Group_5__0 )?
+            int alt60=2;
+            int LA60_0 = input.LA(1);
+
+            if ( (LA60_0==RULE_ID) ) {
+                alt60=1;
+            }
+            switch (alt60) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:10740:3: rule__MockingRule__Group_5__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__MockingRule__Group_5__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getMockingRuleAccess().getGroup_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__5__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__6"
+    // InternalTestgeneratorDSL.g:10748:1: rule__MockingRule__Group__6 : rule__MockingRule__Group__6__Impl rule__MockingRule__Group__7 ;
+    public final void rule__MockingRule__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10752:1: ( rule__MockingRule__Group__6__Impl rule__MockingRule__Group__7 )
+            // InternalTestgeneratorDSL.g:10753:2: rule__MockingRule__Group__6__Impl rule__MockingRule__Group__7
+            {
+            pushFollow(FOLLOW_60);
+            rule__MockingRule__Group__6__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__7();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__6"
+
+
+    // $ANTLR start "rule__MockingRule__Group__6__Impl"
+    // InternalTestgeneratorDSL.g:10760:1: rule__MockingRule__Group__6__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__MockingRule__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10764:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:10765:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:10765:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:10766:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_6()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__6__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__7"
+    // InternalTestgeneratorDSL.g:10775:1: rule__MockingRule__Group__7 : rule__MockingRule__Group__7__Impl rule__MockingRule__Group__8 ;
+    public final void rule__MockingRule__Group__7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10779:1: ( rule__MockingRule__Group__7__Impl rule__MockingRule__Group__8 )
+            // InternalTestgeneratorDSL.g:10780:2: rule__MockingRule__Group__7__Impl rule__MockingRule__Group__8
+            {
+            pushFollow(FOLLOW_13);
+            rule__MockingRule__Group__7__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__8();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__7"
+
+
+    // $ANTLR start "rule__MockingRule__Group__7__Impl"
+    // InternalTestgeneratorDSL.g:10787:1: rule__MockingRule__Group__7__Impl : ( 'set' ) ;
+    public final void rule__MockingRule__Group__7__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10791:1: ( ( 'set' ) )
+            // InternalTestgeneratorDSL.g:10792:1: ( 'set' )
+            {
+            // InternalTestgeneratorDSL.g:10792:1: ( 'set' )
+            // InternalTestgeneratorDSL.g:10793:2: 'set'
+            {
+             before(grammarAccess.getMockingRuleAccess().getSetKeyword_7()); 
+            match(input,75,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getSetKeyword_7()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__7__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__8"
+    // InternalTestgeneratorDSL.g:10802:1: rule__MockingRule__Group__8 : rule__MockingRule__Group__8__Impl rule__MockingRule__Group__9 ;
+    public final void rule__MockingRule__Group__8() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10806:1: ( rule__MockingRule__Group__8__Impl rule__MockingRule__Group__9 )
+            // InternalTestgeneratorDSL.g:10807:2: rule__MockingRule__Group__8__Impl rule__MockingRule__Group__9
+            {
+            pushFollow(FOLLOW_20);
+            rule__MockingRule__Group__8__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__9();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__8"
+
+
+    // $ANTLR start "rule__MockingRule__Group__8__Impl"
+    // InternalTestgeneratorDSL.g:10814:1: rule__MockingRule__Group__8__Impl : ( RULE_LIST_OPEN ) ;
+    public final void rule__MockingRule__Group__8__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10818:1: ( ( RULE_LIST_OPEN ) )
+            // InternalTestgeneratorDSL.g:10819:1: ( RULE_LIST_OPEN )
+            {
+            // InternalTestgeneratorDSL.g:10819:1: ( RULE_LIST_OPEN )
+            // InternalTestgeneratorDSL.g:10820:2: RULE_LIST_OPEN
+            {
+             before(grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_8()); 
+            match(input,RULE_LIST_OPEN,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_8()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__8__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__9"
+    // InternalTestgeneratorDSL.g:10829:1: rule__MockingRule__Group__9 : rule__MockingRule__Group__9__Impl rule__MockingRule__Group__10 ;
+    public final void rule__MockingRule__Group__9() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10833:1: ( rule__MockingRule__Group__9__Impl rule__MockingRule__Group__10 )
+            // InternalTestgeneratorDSL.g:10834:2: rule__MockingRule__Group__9__Impl rule__MockingRule__Group__10
+            {
+            pushFollow(FOLLOW_20);
+            rule__MockingRule__Group__9__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__10();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__9"
+
+
+    // $ANTLR start "rule__MockingRule__Group__9__Impl"
+    // InternalTestgeneratorDSL.g:10841:1: rule__MockingRule__Group__9__Impl : ( ( rule__MockingRule__Group_9__0 )? ) ;
+    public final void rule__MockingRule__Group__9__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10845:1: ( ( ( rule__MockingRule__Group_9__0 )? ) )
+            // InternalTestgeneratorDSL.g:10846:1: ( ( rule__MockingRule__Group_9__0 )? )
+            {
+            // InternalTestgeneratorDSL.g:10846:1: ( ( rule__MockingRule__Group_9__0 )? )
+            // InternalTestgeneratorDSL.g:10847:2: ( rule__MockingRule__Group_9__0 )?
+            {
+             before(grammarAccess.getMockingRuleAccess().getGroup_9()); 
+            // InternalTestgeneratorDSL.g:10848:2: ( rule__MockingRule__Group_9__0 )?
+            int alt61=2;
+            int LA61_0 = input.LA(1);
+
+            if ( (LA61_0==RULE_ID) ) {
+                alt61=1;
+            }
+            switch (alt61) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:10848:3: rule__MockingRule__Group_9__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__MockingRule__Group_9__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getMockingRuleAccess().getGroup_9()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__9__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group__10"
+    // InternalTestgeneratorDSL.g:10856:1: rule__MockingRule__Group__10 : rule__MockingRule__Group__10__Impl ;
+    public final void rule__MockingRule__Group__10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10860:1: ( rule__MockingRule__Group__10__Impl )
+            // InternalTestgeneratorDSL.g:10861:2: rule__MockingRule__Group__10__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group__10__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__10"
+
+
+    // $ANTLR start "rule__MockingRule__Group__10__Impl"
+    // InternalTestgeneratorDSL.g:10867:1: rule__MockingRule__Group__10__Impl : ( RULE_LIST_CLOSED ) ;
+    public final void rule__MockingRule__Group__10__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10871:1: ( ( RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:10872:1: ( RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:10872:1: ( RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:10873:2: RULE_LIST_CLOSED
+            {
+             before(grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_10()); 
+            match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_10()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group__10__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group_5__0"
+    // InternalTestgeneratorDSL.g:10883:1: rule__MockingRule__Group_5__0 : rule__MockingRule__Group_5__0__Impl rule__MockingRule__Group_5__1 ;
+    public final void rule__MockingRule__Group_5__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10887:1: ( rule__MockingRule__Group_5__0__Impl rule__MockingRule__Group_5__1 )
+            // InternalTestgeneratorDSL.g:10888:2: rule__MockingRule__Group_5__0__Impl rule__MockingRule__Group_5__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__MockingRule__Group_5__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group_5__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_5__0"
+
+
+    // $ANTLR start "rule__MockingRule__Group_5__0__Impl"
+    // InternalTestgeneratorDSL.g:10895:1: rule__MockingRule__Group_5__0__Impl : ( ( rule__MockingRule__ComparisonsAssignment_5_0 ) ) ;
+    public final void rule__MockingRule__Group_5__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10899:1: ( ( ( rule__MockingRule__ComparisonsAssignment_5_0 ) ) )
+            // InternalTestgeneratorDSL.g:10900:1: ( ( rule__MockingRule__ComparisonsAssignment_5_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:10900:1: ( ( rule__MockingRule__ComparisonsAssignment_5_0 ) )
+            // InternalTestgeneratorDSL.g:10901:2: ( rule__MockingRule__ComparisonsAssignment_5_0 )
+            {
+             before(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_0()); 
+            // InternalTestgeneratorDSL.g:10902:2: ( rule__MockingRule__ComparisonsAssignment_5_0 )
+            // InternalTestgeneratorDSL.g:10902:3: rule__MockingRule__ComparisonsAssignment_5_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__ComparisonsAssignment_5_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_5__0__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group_5__1"
+    // InternalTestgeneratorDSL.g:10910:1: rule__MockingRule__Group_5__1 : rule__MockingRule__Group_5__1__Impl ;
+    public final void rule__MockingRule__Group_5__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10914:1: ( rule__MockingRule__Group_5__1__Impl )
+            // InternalTestgeneratorDSL.g:10915:2: rule__MockingRule__Group_5__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group_5__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_5__1"
+
+
+    // $ANTLR start "rule__MockingRule__Group_5__1__Impl"
+    // InternalTestgeneratorDSL.g:10921:1: rule__MockingRule__Group_5__1__Impl : ( ( rule__MockingRule__Group_5_1__0 )* ) ;
+    public final void rule__MockingRule__Group_5__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10925:1: ( ( ( rule__MockingRule__Group_5_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:10926:1: ( ( rule__MockingRule__Group_5_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:10926:1: ( ( rule__MockingRule__Group_5_1__0 )* )
+            // InternalTestgeneratorDSL.g:10927:2: ( rule__MockingRule__Group_5_1__0 )*
+            {
+             before(grammarAccess.getMockingRuleAccess().getGroup_5_1()); 
+            // InternalTestgeneratorDSL.g:10928:2: ( rule__MockingRule__Group_5_1__0 )*
+            loop62:
+            do {
+                int alt62=2;
+                int LA62_0 = input.LA(1);
+
+                if ( (LA62_0==RULE_SEPARATOR) ) {
+                    alt62=1;
+                }
+
+
+                switch (alt62) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:10928:3: rule__MockingRule__Group_5_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__MockingRule__Group_5_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop62;
+                }
+            } while (true);
+
+             after(grammarAccess.getMockingRuleAccess().getGroup_5_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_5__1__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group_5_1__0"
+    // InternalTestgeneratorDSL.g:10937:1: rule__MockingRule__Group_5_1__0 : rule__MockingRule__Group_5_1__0__Impl rule__MockingRule__Group_5_1__1 ;
+    public final void rule__MockingRule__Group_5_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10941:1: ( rule__MockingRule__Group_5_1__0__Impl rule__MockingRule__Group_5_1__1 )
+            // InternalTestgeneratorDSL.g:10942:2: rule__MockingRule__Group_5_1__0__Impl rule__MockingRule__Group_5_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__MockingRule__Group_5_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group_5_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_5_1__0"
+
+
+    // $ANTLR start "rule__MockingRule__Group_5_1__0__Impl"
+    // InternalTestgeneratorDSL.g:10949:1: rule__MockingRule__Group_5_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__MockingRule__Group_5_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10953:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:10954:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:10954:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:10955:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_5_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_5_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_5_1__0__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group_5_1__1"
+    // InternalTestgeneratorDSL.g:10964:1: rule__MockingRule__Group_5_1__1 : rule__MockingRule__Group_5_1__1__Impl ;
+    public final void rule__MockingRule__Group_5_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10968:1: ( rule__MockingRule__Group_5_1__1__Impl )
+            // InternalTestgeneratorDSL.g:10969:2: rule__MockingRule__Group_5_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group_5_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_5_1__1"
+
+
+    // $ANTLR start "rule__MockingRule__Group_5_1__1__Impl"
+    // InternalTestgeneratorDSL.g:10975:1: rule__MockingRule__Group_5_1__1__Impl : ( ( rule__MockingRule__ComparisonsAssignment_5_1_1 ) ) ;
+    public final void rule__MockingRule__Group_5_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10979:1: ( ( ( rule__MockingRule__ComparisonsAssignment_5_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:10980:1: ( ( rule__MockingRule__ComparisonsAssignment_5_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:10980:1: ( ( rule__MockingRule__ComparisonsAssignment_5_1_1 ) )
+            // InternalTestgeneratorDSL.g:10981:2: ( rule__MockingRule__ComparisonsAssignment_5_1_1 )
+            {
+             before(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_1_1()); 
+            // InternalTestgeneratorDSL.g:10982:2: ( rule__MockingRule__ComparisonsAssignment_5_1_1 )
+            // InternalTestgeneratorDSL.g:10982:3: rule__MockingRule__ComparisonsAssignment_5_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__ComparisonsAssignment_5_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMockingRuleAccess().getComparisonsAssignment_5_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_5_1__1__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group_9__0"
+    // InternalTestgeneratorDSL.g:10991:1: rule__MockingRule__Group_9__0 : rule__MockingRule__Group_9__0__Impl rule__MockingRule__Group_9__1 ;
+    public final void rule__MockingRule__Group_9__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:10995:1: ( rule__MockingRule__Group_9__0__Impl rule__MockingRule__Group_9__1 )
+            // InternalTestgeneratorDSL.g:10996:2: rule__MockingRule__Group_9__0__Impl rule__MockingRule__Group_9__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__MockingRule__Group_9__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group_9__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_9__0"
+
+
+    // $ANTLR start "rule__MockingRule__Group_9__0__Impl"
+    // InternalTestgeneratorDSL.g:11003:1: rule__MockingRule__Group_9__0__Impl : ( ( rule__MockingRule__VariablesAssignment_9_0 ) ) ;
+    public final void rule__MockingRule__Group_9__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11007:1: ( ( ( rule__MockingRule__VariablesAssignment_9_0 ) ) )
+            // InternalTestgeneratorDSL.g:11008:1: ( ( rule__MockingRule__VariablesAssignment_9_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:11008:1: ( ( rule__MockingRule__VariablesAssignment_9_0 ) )
+            // InternalTestgeneratorDSL.g:11009:2: ( rule__MockingRule__VariablesAssignment_9_0 )
+            {
+             before(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_0()); 
+            // InternalTestgeneratorDSL.g:11010:2: ( rule__MockingRule__VariablesAssignment_9_0 )
+            // InternalTestgeneratorDSL.g:11010:3: rule__MockingRule__VariablesAssignment_9_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__VariablesAssignment_9_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_9__0__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group_9__1"
+    // InternalTestgeneratorDSL.g:11018:1: rule__MockingRule__Group_9__1 : rule__MockingRule__Group_9__1__Impl ;
+    public final void rule__MockingRule__Group_9__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11022:1: ( rule__MockingRule__Group_9__1__Impl )
+            // InternalTestgeneratorDSL.g:11023:2: rule__MockingRule__Group_9__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group_9__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_9__1"
+
+
+    // $ANTLR start "rule__MockingRule__Group_9__1__Impl"
+    // InternalTestgeneratorDSL.g:11029:1: rule__MockingRule__Group_9__1__Impl : ( ( rule__MockingRule__Group_9_1__0 )* ) ;
+    public final void rule__MockingRule__Group_9__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11033:1: ( ( ( rule__MockingRule__Group_9_1__0 )* ) )
+            // InternalTestgeneratorDSL.g:11034:1: ( ( rule__MockingRule__Group_9_1__0 )* )
+            {
+            // InternalTestgeneratorDSL.g:11034:1: ( ( rule__MockingRule__Group_9_1__0 )* )
+            // InternalTestgeneratorDSL.g:11035:2: ( rule__MockingRule__Group_9_1__0 )*
+            {
+             before(grammarAccess.getMockingRuleAccess().getGroup_9_1()); 
+            // InternalTestgeneratorDSL.g:11036:2: ( rule__MockingRule__Group_9_1__0 )*
+            loop63:
+            do {
+                int alt63=2;
+                int LA63_0 = input.LA(1);
+
+                if ( (LA63_0==RULE_SEPARATOR) ) {
+                    alt63=1;
+                }
+
+
+                switch (alt63) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:11036:3: rule__MockingRule__Group_9_1__0
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__MockingRule__Group_9_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop63;
+                }
+            } while (true);
+
+             after(grammarAccess.getMockingRuleAccess().getGroup_9_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_9__1__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group_9_1__0"
+    // InternalTestgeneratorDSL.g:11045:1: rule__MockingRule__Group_9_1__0 : rule__MockingRule__Group_9_1__0__Impl rule__MockingRule__Group_9_1__1 ;
+    public final void rule__MockingRule__Group_9_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11049:1: ( rule__MockingRule__Group_9_1__0__Impl rule__MockingRule__Group_9_1__1 )
+            // InternalTestgeneratorDSL.g:11050:2: rule__MockingRule__Group_9_1__0__Impl rule__MockingRule__Group_9_1__1
+            {
+            pushFollow(FOLLOW_4);
+            rule__MockingRule__Group_9_1__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group_9_1__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_9_1__0"
+
+
+    // $ANTLR start "rule__MockingRule__Group_9_1__0__Impl"
+    // InternalTestgeneratorDSL.g:11057:1: rule__MockingRule__Group_9_1__0__Impl : ( RULE_SEPARATOR ) ;
+    public final void rule__MockingRule__Group_9_1__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11061:1: ( ( RULE_SEPARATOR ) )
+            // InternalTestgeneratorDSL.g:11062:1: ( RULE_SEPARATOR )
+            {
+            // InternalTestgeneratorDSL.g:11062:1: ( RULE_SEPARATOR )
+            // InternalTestgeneratorDSL.g:11063:2: RULE_SEPARATOR
+            {
+             before(grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_9_1_0()); 
+            match(input,RULE_SEPARATOR,FOLLOW_2); 
+             after(grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_9_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_9_1__0__Impl"
+
+
+    // $ANTLR start "rule__MockingRule__Group_9_1__1"
+    // InternalTestgeneratorDSL.g:11072:1: rule__MockingRule__Group_9_1__1 : rule__MockingRule__Group_9_1__1__Impl ;
+    public final void rule__MockingRule__Group_9_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11076:1: ( rule__MockingRule__Group_9_1__1__Impl )
+            // InternalTestgeneratorDSL.g:11077:2: rule__MockingRule__Group_9_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__Group_9_1__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_9_1__1"
+
+
+    // $ANTLR start "rule__MockingRule__Group_9_1__1__Impl"
+    // InternalTestgeneratorDSL.g:11083:1: rule__MockingRule__Group_9_1__1__Impl : ( ( rule__MockingRule__VariablesAssignment_9_1_1 ) ) ;
+    public final void rule__MockingRule__Group_9_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11087:1: ( ( ( rule__MockingRule__VariablesAssignment_9_1_1 ) ) )
+            // InternalTestgeneratorDSL.g:11088:1: ( ( rule__MockingRule__VariablesAssignment_9_1_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:11088:1: ( ( rule__MockingRule__VariablesAssignment_9_1_1 ) )
+            // InternalTestgeneratorDSL.g:11089:2: ( rule__MockingRule__VariablesAssignment_9_1_1 )
+            {
+             before(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_1_1()); 
+            // InternalTestgeneratorDSL.g:11090:2: ( rule__MockingRule__VariablesAssignment_9_1_1 )
+            // InternalTestgeneratorDSL.g:11090:3: rule__MockingRule__VariablesAssignment_9_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__MockingRule__VariablesAssignment_9_1_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getMockingRuleAccess().getVariablesAssignment_9_1_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__Group_9_1__1__Impl"
+
+
+    // $ANTLR start "rule__ManualMock__Group__0"
+    // InternalTestgeneratorDSL.g:11099:1: rule__ManualMock__Group__0 : rule__ManualMock__Group__0__Impl rule__ManualMock__Group__1 ;
+    public final void rule__ManualMock__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11103:1: ( rule__ManualMock__Group__0__Impl rule__ManualMock__Group__1 )
+            // InternalTestgeneratorDSL.g:11104:2: rule__ManualMock__Group__0__Impl rule__ManualMock__Group__1
+            {
+            pushFollow(FOLLOW_61);
+            rule__ManualMock__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__0"
+
+
+    // $ANTLR start "rule__ManualMock__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:11111:1: rule__ManualMock__Group__0__Impl : ( 'with' ) ;
+    public final void rule__ManualMock__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11115:1: ( ( 'with' ) )
+            // InternalTestgeneratorDSL.g:11116:1: ( 'with' )
+            {
+            // InternalTestgeneratorDSL.g:11116:1: ( 'with' )
+            // InternalTestgeneratorDSL.g:11117:2: 'with'
+            {
+             before(grammarAccess.getManualMockAccess().getWithKeyword_0()); 
+            match(input,25,FOLLOW_2); 
+             after(grammarAccess.getManualMockAccess().getWithKeyword_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ManualMock__Group__1"
+    // InternalTestgeneratorDSL.g:11126:1: rule__ManualMock__Group__1 : rule__ManualMock__Group__1__Impl rule__ManualMock__Group__2 ;
+    public final void rule__ManualMock__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11130:1: ( rule__ManualMock__Group__1__Impl rule__ManualMock__Group__2 )
+            // InternalTestgeneratorDSL.g:11131:2: rule__ManualMock__Group__1__Impl rule__ManualMock__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__ManualMock__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__1"
+
+
+    // $ANTLR start "rule__ManualMock__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:11138:1: rule__ManualMock__Group__1__Impl : ( 'manual' ) ;
+    public final void rule__ManualMock__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11142:1: ( ( 'manual' ) )
+            // InternalTestgeneratorDSL.g:11143:1: ( 'manual' )
+            {
+            // InternalTestgeneratorDSL.g:11143:1: ( 'manual' )
+            // InternalTestgeneratorDSL.g:11144:2: 'manual'
+            {
+             before(grammarAccess.getManualMockAccess().getManualKeyword_1()); 
+            match(input,76,FOLLOW_2); 
+             after(grammarAccess.getManualMockAccess().getManualKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__1__Impl"
+
+
+    // $ANTLR start "rule__ManualMock__Group__2"
+    // InternalTestgeneratorDSL.g:11153:1: rule__ManualMock__Group__2 : rule__ManualMock__Group__2__Impl rule__ManualMock__Group__3 ;
+    public final void rule__ManualMock__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11157:1: ( rule__ManualMock__Group__2__Impl rule__ManualMock__Group__3 )
+            // InternalTestgeneratorDSL.g:11158:2: rule__ManualMock__Group__2__Impl rule__ManualMock__Group__3
+            {
+            pushFollow(FOLLOW_42);
+            rule__ManualMock__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__2"
+
+
+    // $ANTLR start "rule__ManualMock__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:11165:1: rule__ManualMock__Group__2__Impl : ( ( rule__ManualMock__ServiceNameAssignment_2 ) ) ;
+    public final void rule__ManualMock__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11169:1: ( ( ( rule__ManualMock__ServiceNameAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:11170:1: ( ( rule__ManualMock__ServiceNameAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:11170:1: ( ( rule__ManualMock__ServiceNameAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:11171:2: ( rule__ManualMock__ServiceNameAssignment_2 )
+            {
+             before(grammarAccess.getManualMockAccess().getServiceNameAssignment_2()); 
+            // InternalTestgeneratorDSL.g:11172:2: ( rule__ManualMock__ServiceNameAssignment_2 )
+            // InternalTestgeneratorDSL.g:11172:3: rule__ManualMock__ServiceNameAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__ServiceNameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getManualMockAccess().getServiceNameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__2__Impl"
+
+
+    // $ANTLR start "rule__ManualMock__Group__3"
+    // InternalTestgeneratorDSL.g:11180:1: rule__ManualMock__Group__3 : rule__ManualMock__Group__3__Impl rule__ManualMock__Group__4 ;
+    public final void rule__ManualMock__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11184:1: ( rule__ManualMock__Group__3__Impl rule__ManualMock__Group__4 )
+            // InternalTestgeneratorDSL.g:11185:2: rule__ManualMock__Group__3__Impl rule__ManualMock__Group__4
+            {
+            pushFollow(FOLLOW_62);
+            rule__ManualMock__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__3"
+
+
+    // $ANTLR start "rule__ManualMock__Group__3__Impl"
+    // InternalTestgeneratorDSL.g:11192:1: rule__ManualMock__Group__3__Impl : ( 'by' ) ;
+    public final void rule__ManualMock__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11196:1: ( ( 'by' ) )
+            // InternalTestgeneratorDSL.g:11197:1: ( 'by' )
+            {
+            // InternalTestgeneratorDSL.g:11197:1: ( 'by' )
+            // InternalTestgeneratorDSL.g:11198:2: 'by'
+            {
+             before(grammarAccess.getManualMockAccess().getByKeyword_3()); 
+            match(input,55,FOLLOW_2); 
+             after(grammarAccess.getManualMockAccess().getByKeyword_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ManualMock__Group__4"
+    // InternalTestgeneratorDSL.g:11207:1: rule__ManualMock__Group__4 : rule__ManualMock__Group__4__Impl rule__ManualMock__Group__5 ;
+    public final void rule__ManualMock__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11211:1: ( rule__ManualMock__Group__4__Impl rule__ManualMock__Group__5 )
+            // InternalTestgeneratorDSL.g:11212:2: rule__ManualMock__Group__4__Impl rule__ManualMock__Group__5
+            {
+            pushFollow(FOLLOW_7);
+            rule__ManualMock__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__4"
+
+
+    // $ANTLR start "rule__ManualMock__Group__4__Impl"
+    // InternalTestgeneratorDSL.g:11219:1: rule__ManualMock__Group__4__Impl : ( 'setter' ) ;
+    public final void rule__ManualMock__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11223:1: ( ( 'setter' ) )
+            // InternalTestgeneratorDSL.g:11224:1: ( 'setter' )
+            {
+            // InternalTestgeneratorDSL.g:11224:1: ( 'setter' )
+            // InternalTestgeneratorDSL.g:11225:2: 'setter'
+            {
+             before(grammarAccess.getManualMockAccess().getSetterKeyword_4()); 
+            match(input,77,FOLLOW_2); 
+             after(grammarAccess.getManualMockAccess().getSetterKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ManualMock__Group__5"
+    // InternalTestgeneratorDSL.g:11234:1: rule__ManualMock__Group__5 : rule__ManualMock__Group__5__Impl ;
+    public final void rule__ManualMock__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11238:1: ( rule__ManualMock__Group__5__Impl )
+            // InternalTestgeneratorDSL.g:11239:2: rule__ManualMock__Group__5__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__Group__5__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__5"
+
+
+    // $ANTLR start "rule__ManualMock__Group__5__Impl"
+    // InternalTestgeneratorDSL.g:11245:1: rule__ManualMock__Group__5__Impl : ( ( rule__ManualMock__SetterAssignment_5 ) ) ;
+    public final void rule__ManualMock__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11249:1: ( ( ( rule__ManualMock__SetterAssignment_5 ) ) )
+            // InternalTestgeneratorDSL.g:11250:1: ( ( rule__ManualMock__SetterAssignment_5 ) )
+            {
+            // InternalTestgeneratorDSL.g:11250:1: ( ( rule__ManualMock__SetterAssignment_5 ) )
+            // InternalTestgeneratorDSL.g:11251:2: ( rule__ManualMock__SetterAssignment_5 )
+            {
+             before(grammarAccess.getManualMockAccess().getSetterAssignment_5()); 
+            // InternalTestgeneratorDSL.g:11252:2: ( rule__ManualMock__SetterAssignment_5 )
+            // InternalTestgeneratorDSL.g:11252:3: rule__ManualMock__SetterAssignment_5
+            {
+            pushFollow(FOLLOW_2);
+            rule__ManualMock__SetterAssignment_5();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getManualMockAccess().getSetterAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__Group__5__Impl"
+
+
+    // $ANTLR start "rule__StringCompare__Group__0"
+    // InternalTestgeneratorDSL.g:11261:1: rule__StringCompare__Group__0 : rule__StringCompare__Group__0__Impl rule__StringCompare__Group__1 ;
+    public final void rule__StringCompare__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11265:1: ( rule__StringCompare__Group__0__Impl rule__StringCompare__Group__1 )
+            // InternalTestgeneratorDSL.g:11266:2: rule__StringCompare__Group__0__Impl rule__StringCompare__Group__1
+            {
+            pushFollow(FOLLOW_63);
+            rule__StringCompare__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringCompare__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__Group__0"
+
+
+    // $ANTLR start "rule__StringCompare__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:11273:1: rule__StringCompare__Group__0__Impl : ( ( rule__StringCompare__KeyAssignment_0 ) ) ;
+    public final void rule__StringCompare__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11277:1: ( ( ( rule__StringCompare__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:11278:1: ( ( rule__StringCompare__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:11278:1: ( ( rule__StringCompare__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:11279:2: ( rule__StringCompare__KeyAssignment_0 )
+            {
+             before(grammarAccess.getStringCompareAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:11280:2: ( rule__StringCompare__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:11280:3: rule__StringCompare__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringCompare__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringCompareAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__Group__0__Impl"
+
+
+    // $ANTLR start "rule__StringCompare__Group__1"
+    // InternalTestgeneratorDSL.g:11288:1: rule__StringCompare__Group__1 : rule__StringCompare__Group__1__Impl rule__StringCompare__Group__2 ;
+    public final void rule__StringCompare__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11292:1: ( rule__StringCompare__Group__1__Impl rule__StringCompare__Group__2 )
+            // InternalTestgeneratorDSL.g:11293:2: rule__StringCompare__Group__1__Impl rule__StringCompare__Group__2
+            {
+            pushFollow(FOLLOW_7);
+            rule__StringCompare__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__StringCompare__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__Group__1"
+
+
+    // $ANTLR start "rule__StringCompare__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:11300:1: rule__StringCompare__Group__1__Impl : ( ( rule__StringCompare__CompareSymbolAssignment_1 ) ) ;
+    public final void rule__StringCompare__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11304:1: ( ( ( rule__StringCompare__CompareSymbolAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:11305:1: ( ( rule__StringCompare__CompareSymbolAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:11305:1: ( ( rule__StringCompare__CompareSymbolAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:11306:2: ( rule__StringCompare__CompareSymbolAssignment_1 )
+            {
+             before(grammarAccess.getStringCompareAccess().getCompareSymbolAssignment_1()); 
+            // InternalTestgeneratorDSL.g:11307:2: ( rule__StringCompare__CompareSymbolAssignment_1 )
+            // InternalTestgeneratorDSL.g:11307:3: rule__StringCompare__CompareSymbolAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringCompare__CompareSymbolAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringCompareAccess().getCompareSymbolAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__Group__1__Impl"
+
+
+    // $ANTLR start "rule__StringCompare__Group__2"
+    // InternalTestgeneratorDSL.g:11315:1: rule__StringCompare__Group__2 : rule__StringCompare__Group__2__Impl ;
+    public final void rule__StringCompare__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11319:1: ( rule__StringCompare__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:11320:2: rule__StringCompare__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringCompare__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__Group__2"
+
+
+    // $ANTLR start "rule__StringCompare__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:11326:1: rule__StringCompare__Group__2__Impl : ( ( rule__StringCompare__ValueAssignment_2 ) ) ;
+    public final void rule__StringCompare__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11330:1: ( ( ( rule__StringCompare__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:11331:1: ( ( rule__StringCompare__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:11331:1: ( ( rule__StringCompare__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:11332:2: ( rule__StringCompare__ValueAssignment_2 )
+            {
+             before(grammarAccess.getStringCompareAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:11333:2: ( rule__StringCompare__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:11333:3: rule__StringCompare__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__StringCompare__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getStringCompareAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__Group__2__Impl"
+
+
+    // $ANTLR start "rule__IntCompare__Group__0"
+    // InternalTestgeneratorDSL.g:11342:1: rule__IntCompare__Group__0 : rule__IntCompare__Group__0__Impl rule__IntCompare__Group__1 ;
+    public final void rule__IntCompare__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11346:1: ( rule__IntCompare__Group__0__Impl rule__IntCompare__Group__1 )
+            // InternalTestgeneratorDSL.g:11347:2: rule__IntCompare__Group__0__Impl rule__IntCompare__Group__1
+            {
+            pushFollow(FOLLOW_64);
+            rule__IntCompare__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntCompare__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__Group__0"
+
+
+    // $ANTLR start "rule__IntCompare__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:11354:1: rule__IntCompare__Group__0__Impl : ( ( rule__IntCompare__KeyAssignment_0 ) ) ;
+    public final void rule__IntCompare__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11358:1: ( ( ( rule__IntCompare__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:11359:1: ( ( rule__IntCompare__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:11359:1: ( ( rule__IntCompare__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:11360:2: ( rule__IntCompare__KeyAssignment_0 )
+            {
+             before(grammarAccess.getIntCompareAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:11361:2: ( rule__IntCompare__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:11361:3: rule__IntCompare__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntCompare__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntCompareAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__Group__0__Impl"
+
+
+    // $ANTLR start "rule__IntCompare__Group__1"
+    // InternalTestgeneratorDSL.g:11369:1: rule__IntCompare__Group__1 : rule__IntCompare__Group__1__Impl rule__IntCompare__Group__2 ;
+    public final void rule__IntCompare__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11373:1: ( rule__IntCompare__Group__1__Impl rule__IntCompare__Group__2 )
+            // InternalTestgeneratorDSL.g:11374:2: rule__IntCompare__Group__1__Impl rule__IntCompare__Group__2
+            {
+            pushFollow(FOLLOW_37);
+            rule__IntCompare__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__IntCompare__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__Group__1"
+
+
+    // $ANTLR start "rule__IntCompare__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:11381:1: rule__IntCompare__Group__1__Impl : ( ( rule__IntCompare__CompareSymbolAssignment_1 ) ) ;
+    public final void rule__IntCompare__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11385:1: ( ( ( rule__IntCompare__CompareSymbolAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:11386:1: ( ( rule__IntCompare__CompareSymbolAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:11386:1: ( ( rule__IntCompare__CompareSymbolAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:11387:2: ( rule__IntCompare__CompareSymbolAssignment_1 )
+            {
+             before(grammarAccess.getIntCompareAccess().getCompareSymbolAssignment_1()); 
+            // InternalTestgeneratorDSL.g:11388:2: ( rule__IntCompare__CompareSymbolAssignment_1 )
+            // InternalTestgeneratorDSL.g:11388:3: rule__IntCompare__CompareSymbolAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntCompare__CompareSymbolAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntCompareAccess().getCompareSymbolAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__Group__1__Impl"
+
+
+    // $ANTLR start "rule__IntCompare__Group__2"
+    // InternalTestgeneratorDSL.g:11396:1: rule__IntCompare__Group__2 : rule__IntCompare__Group__2__Impl ;
+    public final void rule__IntCompare__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11400:1: ( rule__IntCompare__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:11401:2: rule__IntCompare__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntCompare__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__Group__2"
+
+
+    // $ANTLR start "rule__IntCompare__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:11407:1: rule__IntCompare__Group__2__Impl : ( ( rule__IntCompare__ValueAssignment_2 ) ) ;
+    public final void rule__IntCompare__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11411:1: ( ( ( rule__IntCompare__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:11412:1: ( ( rule__IntCompare__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:11412:1: ( ( rule__IntCompare__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:11413:2: ( rule__IntCompare__ValueAssignment_2 )
+            {
+             before(grammarAccess.getIntCompareAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:11414:2: ( rule__IntCompare__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:11414:3: rule__IntCompare__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__IntCompare__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getIntCompareAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__Group__2__Impl"
+
+
+    // $ANTLR start "rule__BooleanCompare__Group__0"
+    // InternalTestgeneratorDSL.g:11423:1: rule__BooleanCompare__Group__0 : rule__BooleanCompare__Group__0__Impl rule__BooleanCompare__Group__1 ;
+    public final void rule__BooleanCompare__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11427:1: ( rule__BooleanCompare__Group__0__Impl rule__BooleanCompare__Group__1 )
+            // InternalTestgeneratorDSL.g:11428:2: rule__BooleanCompare__Group__0__Impl rule__BooleanCompare__Group__1
+            {
+            pushFollow(FOLLOW_63);
+            rule__BooleanCompare__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanCompare__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__Group__0"
+
+
+    // $ANTLR start "rule__BooleanCompare__Group__0__Impl"
+    // InternalTestgeneratorDSL.g:11435:1: rule__BooleanCompare__Group__0__Impl : ( ( rule__BooleanCompare__KeyAssignment_0 ) ) ;
+    public final void rule__BooleanCompare__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11439:1: ( ( ( rule__BooleanCompare__KeyAssignment_0 ) ) )
+            // InternalTestgeneratorDSL.g:11440:1: ( ( rule__BooleanCompare__KeyAssignment_0 ) )
+            {
+            // InternalTestgeneratorDSL.g:11440:1: ( ( rule__BooleanCompare__KeyAssignment_0 ) )
+            // InternalTestgeneratorDSL.g:11441:2: ( rule__BooleanCompare__KeyAssignment_0 )
+            {
+             before(grammarAccess.getBooleanCompareAccess().getKeyAssignment_0()); 
+            // InternalTestgeneratorDSL.g:11442:2: ( rule__BooleanCompare__KeyAssignment_0 )
+            // InternalTestgeneratorDSL.g:11442:3: rule__BooleanCompare__KeyAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanCompare__KeyAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanCompareAccess().getKeyAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__Group__0__Impl"
+
+
+    // $ANTLR start "rule__BooleanCompare__Group__1"
+    // InternalTestgeneratorDSL.g:11450:1: rule__BooleanCompare__Group__1 : rule__BooleanCompare__Group__1__Impl rule__BooleanCompare__Group__2 ;
+    public final void rule__BooleanCompare__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11454:1: ( rule__BooleanCompare__Group__1__Impl rule__BooleanCompare__Group__2 )
+            // InternalTestgeneratorDSL.g:11455:2: rule__BooleanCompare__Group__1__Impl rule__BooleanCompare__Group__2
+            {
+            pushFollow(FOLLOW_39);
+            rule__BooleanCompare__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__BooleanCompare__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__Group__1"
+
+
+    // $ANTLR start "rule__BooleanCompare__Group__1__Impl"
+    // InternalTestgeneratorDSL.g:11462:1: rule__BooleanCompare__Group__1__Impl : ( ( rule__BooleanCompare__CompareSymbolAssignment_1 ) ) ;
+    public final void rule__BooleanCompare__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11466:1: ( ( ( rule__BooleanCompare__CompareSymbolAssignment_1 ) ) )
+            // InternalTestgeneratorDSL.g:11467:1: ( ( rule__BooleanCompare__CompareSymbolAssignment_1 ) )
+            {
+            // InternalTestgeneratorDSL.g:11467:1: ( ( rule__BooleanCompare__CompareSymbolAssignment_1 ) )
+            // InternalTestgeneratorDSL.g:11468:2: ( rule__BooleanCompare__CompareSymbolAssignment_1 )
+            {
+             before(grammarAccess.getBooleanCompareAccess().getCompareSymbolAssignment_1()); 
+            // InternalTestgeneratorDSL.g:11469:2: ( rule__BooleanCompare__CompareSymbolAssignment_1 )
+            // InternalTestgeneratorDSL.g:11469:3: rule__BooleanCompare__CompareSymbolAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanCompare__CompareSymbolAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanCompareAccess().getCompareSymbolAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__Group__1__Impl"
+
+
+    // $ANTLR start "rule__BooleanCompare__Group__2"
+    // InternalTestgeneratorDSL.g:11477:1: rule__BooleanCompare__Group__2 : rule__BooleanCompare__Group__2__Impl ;
+    public final void rule__BooleanCompare__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11481:1: ( rule__BooleanCompare__Group__2__Impl )
+            // InternalTestgeneratorDSL.g:11482:2: rule__BooleanCompare__Group__2__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanCompare__Group__2__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__Group__2"
+
+
+    // $ANTLR start "rule__BooleanCompare__Group__2__Impl"
+    // InternalTestgeneratorDSL.g:11488:1: rule__BooleanCompare__Group__2__Impl : ( ( rule__BooleanCompare__ValueAssignment_2 ) ) ;
+    public final void rule__BooleanCompare__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11492:1: ( ( ( rule__BooleanCompare__ValueAssignment_2 ) ) )
+            // InternalTestgeneratorDSL.g:11493:1: ( ( rule__BooleanCompare__ValueAssignment_2 ) )
+            {
+            // InternalTestgeneratorDSL.g:11493:1: ( ( rule__BooleanCompare__ValueAssignment_2 ) )
+            // InternalTestgeneratorDSL.g:11494:2: ( rule__BooleanCompare__ValueAssignment_2 )
+            {
+             before(grammarAccess.getBooleanCompareAccess().getValueAssignment_2()); 
+            // InternalTestgeneratorDSL.g:11495:2: ( rule__BooleanCompare__ValueAssignment_2 )
+            // InternalTestgeneratorDSL.g:11495:3: rule__BooleanCompare__ValueAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__BooleanCompare__ValueAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getBooleanCompareAccess().getValueAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__Group__2__Impl"
+
+
+    // $ANTLR start "rule__Model__DeclarationsAssignment"
+    // InternalTestgeneratorDSL.g:11504:1: rule__Model__DeclarationsAssignment : ( ruleDeclaration ) ;
+    public final void rule__Model__DeclarationsAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11508:1: ( ( ruleDeclaration ) )
+            // InternalTestgeneratorDSL.g:11509:2: ( ruleDeclaration )
+            {
+            // InternalTestgeneratorDSL.g:11509:2: ( ruleDeclaration )
+            // InternalTestgeneratorDSL.g:11510:3: ruleDeclaration
+            {
+             before(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_0()); 
+            pushFollow(FOLLOW_2);
+            ruleDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Model__DeclarationsAssignment"
+
+
+    // $ANTLR start "rule__BPMNDiagram__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11519:1: rule__BPMNDiagram__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__BPMNDiagram__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11523:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11524:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11524:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11525:3: RULE_ID
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__NameAssignment_1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__TestpackageAssignment_4"
+    // InternalTestgeneratorDSL.g:11534:1: rule__BPMNDiagram__TestpackageAssignment_4 : ( RULE_STRING ) ;
+    public final void rule__BPMNDiagram__TestpackageAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11538:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11539:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11539:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11540:3: RULE_STRING
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getTestpackageSTRINGTerminalRuleCall_4_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getTestpackageSTRINGTerminalRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__TestpackageAssignment_4"
+
+
+    // $ANTLR start "rule__BPMNDiagram__BpmnAssignment_7"
+    // InternalTestgeneratorDSL.g:11549:1: rule__BPMNDiagram__BpmnAssignment_7 : ( RULE_STRING ) ;
+    public final void rule__BPMNDiagram__BpmnAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11553:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11554:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11554:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11555:3: RULE_STRING
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getBpmnSTRINGTerminalRuleCall_7_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getBpmnSTRINGTerminalRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__BpmnAssignment_7"
+
+
+    // $ANTLR start "rule__BPMNDiagram__KeyAssignment_10"
+    // InternalTestgeneratorDSL.g:11564:1: rule__BPMNDiagram__KeyAssignment_10 : ( RULE_STRING ) ;
+    public final void rule__BPMNDiagram__KeyAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11568:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11569:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11569:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11570:3: RULE_STRING
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getKeySTRINGTerminalRuleCall_10_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getKeySTRINGTerminalRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__KeyAssignment_10"
+
+
+    // $ANTLR start "rule__BPMNDiagram__DmnAssignment_11_4_0"
+    // InternalTestgeneratorDSL.g:11579:1: rule__BPMNDiagram__DmnAssignment_11_4_0 : ( RULE_STRING ) ;
+    public final void rule__BPMNDiagram__DmnAssignment_11_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11583:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11584:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11584:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11585:3: RULE_STRING
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_0_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__DmnAssignment_11_4_0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__DmnAssignment_11_4_1_1"
+    // InternalTestgeneratorDSL.g:11594:1: rule__BPMNDiagram__DmnAssignment_11_4_1_1 : ( RULE_STRING ) ;
+    public final void rule__BPMNDiagram__DmnAssignment_11_4_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11598:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11599:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11599:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11600:3: RULE_STRING
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_1_1_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__DmnAssignment_11_4_1_1"
+
+
+    // $ANTLR start "rule__BPMNDiagram__EmbeddedAssignment_12_4_0"
+    // InternalTestgeneratorDSL.g:11609:1: rule__BPMNDiagram__EmbeddedAssignment_12_4_0 : ( RULE_STRING ) ;
+    public final void rule__BPMNDiagram__EmbeddedAssignment_12_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11613:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11614:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11614:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11615:3: RULE_STRING
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_0_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__EmbeddedAssignment_12_4_0"
+
+
+    // $ANTLR start "rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1"
+    // InternalTestgeneratorDSL.g:11624:1: rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1 : ( RULE_STRING ) ;
+    public final void rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11628:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11629:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11629:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11630:3: RULE_STRING
+            {
+             before(grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNDiagram__EmbeddedAssignment_12_4_1_1"
+
+
+    // $ANTLR start "rule__BPMNReference__RefAssignment"
+    // InternalTestgeneratorDSL.g:11639:1: rule__BPMNReference__RefAssignment : ( ( RULE_ID ) ) ;
+    public final void rule__BPMNReference__RefAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11643:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:11644:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:11644:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11645:3: ( RULE_ID )
+            {
+             before(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramCrossReference_0()); 
+            // InternalTestgeneratorDSL.g:11646:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11647:4: RULE_ID
+            {
+             before(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramIDTerminalRuleCall_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramIDTerminalRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BPMNReference__RefAssignment"
+
+
+    // $ANTLR start "rule__StartFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11658:1: rule__StartFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__StartFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11662:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11663:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11663:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11664:3: RULE_ID
+            {
+             before(grammarAccess.getStartFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getStartFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__StartFlowElement__InputVariablesAssignment_4_4_0"
+    // InternalTestgeneratorDSL.g:11673:1: rule__StartFlowElement__InputVariablesAssignment_4_4_0 : ( ruleVariableReference ) ;
+    public final void rule__StartFlowElement__InputVariablesAssignment_4_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11677:1: ( ( ruleVariableReference ) )
+            // InternalTestgeneratorDSL.g:11678:2: ( ruleVariableReference )
+            {
+            // InternalTestgeneratorDSL.g:11678:2: ( ruleVariableReference )
+            // InternalTestgeneratorDSL.g:11679:3: ruleVariableReference
+            {
+             before(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__InputVariablesAssignment_4_4_0"
+
+
+    // $ANTLR start "rule__StartFlowElement__InputVariablesAssignment_4_4_1_1"
+    // InternalTestgeneratorDSL.g:11688:1: rule__StartFlowElement__InputVariablesAssignment_4_4_1_1 : ( ruleVariableReference ) ;
+    public final void rule__StartFlowElement__InputVariablesAssignment_4_4_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11692:1: ( ( ruleVariableReference ) )
+            // InternalTestgeneratorDSL.g:11693:2: ( ruleVariableReference )
+            {
+            // InternalTestgeneratorDSL.g:11693:2: ( ruleVariableReference )
+            // InternalTestgeneratorDSL.g:11694:3: ruleVariableReference
+            {
+             before(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StartFlowElement__InputVariablesAssignment_4_4_1_1"
+
+
+    // $ANTLR start "rule__EndFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11703:1: rule__EndFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__EndFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11707:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11708:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11708:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11709:3: RULE_ID
+            {
+             before(grammarAccess.getEndFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getEndFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11718:1: rule__UserTaskFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__UserTaskFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11722:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11723:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11723:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11724:3: RULE_ID
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getUserTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0"
+    // InternalTestgeneratorDSL.g:11733:1: rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0 : ( ruleVariableReference ) ;
+    public final void rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11737:1: ( ( ruleVariableReference ) )
+            // InternalTestgeneratorDSL.g:11738:2: ( ruleVariableReference )
+            {
+            // InternalTestgeneratorDSL.g:11738:2: ( ruleVariableReference )
+            // InternalTestgeneratorDSL.g:11739:3: ruleVariableReference
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__InputVariablesAssignment_4_4_0"
+
+
+    // $ANTLR start "rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1"
+    // InternalTestgeneratorDSL.g:11748:1: rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1 : ( ruleVariableReference ) ;
+    public final void rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11752:1: ( ( ruleVariableReference ) )
+            // InternalTestgeneratorDSL.g:11753:2: ( ruleVariableReference )
+            {
+            // InternalTestgeneratorDSL.g:11753:2: ( ruleVariableReference )
+            // InternalTestgeneratorDSL.g:11754:3: ruleVariableReference
+            {
+             before(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__UserTaskFlowElement__InputVariablesAssignment_4_4_1_1"
+
+
+    // $ANTLR start "rule__ManualTaskFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11763:1: rule__ManualTaskFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__ManualTaskFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11767:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11768:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11768:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11769:3: RULE_ID
+            {
+             before(grammarAccess.getManualTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getManualTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualTaskFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__ScriptTaskFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11778:1: rule__ScriptTaskFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__ScriptTaskFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11782:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11783:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11783:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11784:3: RULE_ID
+            {
+             before(grammarAccess.getScriptTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getScriptTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ScriptTaskFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11793:1: rule__DelegateServiceTaskFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__DelegateServiceTaskFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11797:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11798:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11798:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11799:3: RULE_ID
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskFlowElement__DelegateAssignment_7"
+    // InternalTestgeneratorDSL.g:11808:1: rule__DelegateServiceTaskFlowElement__DelegateAssignment_7 : ( RULE_STRING ) ;
+    public final void rule__DelegateServiceTaskFlowElement__DelegateAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11812:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11813:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11813:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11814:3: RULE_STRING
+            {
+             before(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateSTRINGTerminalRuleCall_7_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateSTRINGTerminalRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskFlowElement__DelegateAssignment_7"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11823:1: rule__ExternalServiceTaskFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__ExternalServiceTaskFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11827:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11828:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11828:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11829:3: RULE_ID
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7"
+    // InternalTestgeneratorDSL.g:11838:1: rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7 : ( ruleExternalTopicReference ) ;
+    public final void rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11842:1: ( ( ruleExternalTopicReference ) )
+            // InternalTestgeneratorDSL.g:11843:2: ( ruleExternalTopicReference )
+            {
+            // InternalTestgeneratorDSL.g:11843:2: ( ruleExternalTopicReference )
+            // InternalTestgeneratorDSL.g:11844:3: ruleExternalTopicReference
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicExternalTopicReferenceParserRuleCall_7_0()); 
+            pushFollow(FOLLOW_2);
+            ruleExternalTopicReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicExternalTopicReferenceParserRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__ExternalTopicAssignment_7"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0"
+    // InternalTestgeneratorDSL.g:11853:1: rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0 : ( ruleVariableDeclaration ) ;
+    public final void rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11857:1: ( ( ruleVariableDeclaration ) )
+            // InternalTestgeneratorDSL.g:11858:2: ( ruleVariableDeclaration )
+            {
+            // InternalTestgeneratorDSL.g:11858:2: ( ruleVariableDeclaration )
+            // InternalTestgeneratorDSL.g:11859:3: ruleVariableDeclaration
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_0"
+
+
+    // $ANTLR start "rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1"
+    // InternalTestgeneratorDSL.g:11868:1: rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1 : ( ruleVariableDeclaration ) ;
+    public final void rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11872:1: ( ( ruleVariableDeclaration ) )
+            // InternalTestgeneratorDSL.g:11873:2: ( ruleVariableDeclaration )
+            {
+            // InternalTestgeneratorDSL.g:11873:2: ( ruleVariableDeclaration )
+            // InternalTestgeneratorDSL.g:11874:3: ruleVariableDeclaration
+            {
+             before(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceTaskFlowElement__HardcodedInputsAssignment_8_5_1_1"
+
+
+    // $ANTLR start "rule__BusinessRuleTaskFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11883:1: rule__BusinessRuleTaskFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__BusinessRuleTaskFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11887:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11888:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11888:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11889:3: RULE_ID
+            {
+             before(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BusinessRuleTaskFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__GatewayFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11898:1: rule__GatewayFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__GatewayFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11902:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11903:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11903:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11904:3: RULE_ID
+            {
+             before(grammarAccess.getGatewayFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getGatewayFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__GatewayFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11913:1: rule__SequenceFlowElement__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__SequenceFlowElement__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11917:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11918:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11918:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11919:3: RULE_ID
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__NameAssignment_1"
+
+
+    // $ANTLR start "rule__SequenceFlowElement__ExpressionAssignment_4_3"
+    // InternalTestgeneratorDSL.g:11928:1: rule__SequenceFlowElement__ExpressionAssignment_4_3 : ( RULE_STRING ) ;
+    public final void rule__SequenceFlowElement__ExpressionAssignment_4_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11932:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:11933:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:11933:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:11934:3: RULE_STRING
+            {
+             before(grammarAccess.getSequenceFlowElementAccess().getExpressionSTRINGTerminalRuleCall_4_3_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getSequenceFlowElementAccess().getExpressionSTRINGTerminalRuleCall_4_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__SequenceFlowElement__ExpressionAssignment_4_3"
+
+
+    // $ANTLR start "rule__FlowElementReference__RefAssignment"
+    // InternalTestgeneratorDSL.g:11943:1: rule__FlowElementReference__RefAssignment : ( ( RULE_ID ) ) ;
+    public final void rule__FlowElementReference__RefAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11947:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:11948:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:11948:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11949:3: ( RULE_ID )
+            {
+             before(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementCrossReference_0()); 
+            // InternalTestgeneratorDSL.g:11950:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11951:4: RULE_ID
+            {
+             before(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementIDTerminalRuleCall_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementIDTerminalRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowElementReference__RefAssignment"
+
+
+    // $ANTLR start "rule__DelegateServiceTaskReference__RefAssignment"
+    // InternalTestgeneratorDSL.g:11962:1: rule__DelegateServiceTaskReference__RefAssignment : ( ( RULE_ID ) ) ;
+    public final void rule__DelegateServiceTaskReference__RefAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11966:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:11967:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:11967:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11968:3: ( RULE_ID )
+            {
+             before(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementCrossReference_0()); 
+            // InternalTestgeneratorDSL.g:11969:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11970:4: RULE_ID
+            {
+             before(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementIDTerminalRuleCall_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementIDTerminalRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateServiceTaskReference__RefAssignment"
+
+
+    // $ANTLR start "rule__ExternalTopic__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:11981:1: rule__ExternalTopic__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__ExternalTopic__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:11985:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:11986:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:11986:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:11987:3: RULE_ID
+            {
+             before(grammarAccess.getExternalTopicAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getExternalTopicAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalTopic__NameAssignment_1"
+
+
+    // $ANTLR start "rule__ExternalTopicReference__RefAssignment"
+    // InternalTestgeneratorDSL.g:11996:1: rule__ExternalTopicReference__RefAssignment : ( ( RULE_ID ) ) ;
+    public final void rule__ExternalTopicReference__RefAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12000:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12001:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12001:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12002:3: ( RULE_ID )
+            {
+             before(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicCrossReference_0()); 
+            // InternalTestgeneratorDSL.g:12003:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12004:4: RULE_ID
+            {
+             before(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicIDTerminalRuleCall_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicIDTerminalRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalTopicReference__RefAssignment"
+
+
+    // $ANTLR start "rule__VariableReference__RefAssignment"
+    // InternalTestgeneratorDSL.g:12015:1: rule__VariableReference__RefAssignment : ( ( RULE_ID ) ) ;
+    public final void rule__VariableReference__RefAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12019:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12020:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12020:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12021:3: ( RULE_ID )
+            {
+             before(grammarAccess.getVariableReferenceAccess().getRefVariableCrossReference_0()); 
+            // InternalTestgeneratorDSL.g:12022:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12023:4: RULE_ID
+            {
+             before(grammarAccess.getVariableReferenceAccess().getRefVariableIDTerminalRuleCall_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getVariableReferenceAccess().getRefVariableIDTerminalRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getVariableReferenceAccess().getRefVariableCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableReference__RefAssignment"
+
+
+    // $ANTLR start "rule__StringVariable__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:12034:1: rule__StringVariable__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__StringVariable__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12038:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12039:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:12039:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12040:3: RULE_ID
+            {
+             before(grammarAccess.getStringVariableAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__NameAssignment_1"
+
+
+    // $ANTLR start "rule__StringVariable__ProposalsAssignment_6_0"
+    // InternalTestgeneratorDSL.g:12049:1: rule__StringVariable__ProposalsAssignment_6_0 : ( RULE_STRING ) ;
+    public final void rule__StringVariable__ProposalsAssignment_6_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12053:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12054:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12054:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12055:3: RULE_STRING
+            {
+             before(grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_0_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__ProposalsAssignment_6_0"
+
+
+    // $ANTLR start "rule__StringVariable__ProposalsAssignment_6_1_1"
+    // InternalTestgeneratorDSL.g:12064:1: rule__StringVariable__ProposalsAssignment_6_1_1 : ( RULE_STRING ) ;
+    public final void rule__StringVariable__ProposalsAssignment_6_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12068:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12069:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12069:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12070:3: RULE_STRING
+            {
+             before(grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_1_1_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariable__ProposalsAssignment_6_1_1"
+
+
+    // $ANTLR start "rule__IntVariable__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:12079:1: rule__IntVariable__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__IntVariable__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12083:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12084:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:12084:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12085:3: RULE_ID
+            {
+             before(grammarAccess.getIntVariableAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__NameAssignment_1"
+
+
+    // $ANTLR start "rule__IntVariable__ProposalsAssignment_6_0"
+    // InternalTestgeneratorDSL.g:12094:1: rule__IntVariable__ProposalsAssignment_6_0 : ( RULE_INT ) ;
+    public final void rule__IntVariable__ProposalsAssignment_6_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12098:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12099:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12099:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12100:3: RULE_INT
+            {
+             before(grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_0_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__ProposalsAssignment_6_0"
+
+
+    // $ANTLR start "rule__IntVariable__ProposalsAssignment_6_1_1"
+    // InternalTestgeneratorDSL.g:12109:1: rule__IntVariable__ProposalsAssignment_6_1_1 : ( RULE_INT ) ;
+    public final void rule__IntVariable__ProposalsAssignment_6_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12113:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12114:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12114:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12115:3: RULE_INT
+            {
+             before(grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_1_1_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariable__ProposalsAssignment_6_1_1"
+
+
+    // $ANTLR start "rule__BooleanVariable__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:12124:1: rule__BooleanVariable__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__BooleanVariable__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12128:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12129:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:12129:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12130:3: RULE_ID
+            {
+             before(grammarAccess.getBooleanVariableAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__NameAssignment_1"
+
+
+    // $ANTLR start "rule__BooleanVariable__ProposalsAssignment_6_0"
+    // InternalTestgeneratorDSL.g:12139:1: rule__BooleanVariable__ProposalsAssignment_6_0 : ( ruleBoolean ) ;
+    public final void rule__BooleanVariable__ProposalsAssignment_6_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12143:1: ( ( ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:12144:2: ( ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:12144:2: ( ruleBoolean )
+            // InternalTestgeneratorDSL.g:12145:3: ruleBoolean
+            {
+             before(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__ProposalsAssignment_6_0"
+
+
+    // $ANTLR start "rule__BooleanVariable__ProposalsAssignment_6_1_1"
+    // InternalTestgeneratorDSL.g:12154:1: rule__BooleanVariable__ProposalsAssignment_6_1_1 : ( ruleBoolean ) ;
+    public final void rule__BooleanVariable__ProposalsAssignment_6_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12158:1: ( ( ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:12159:2: ( ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:12159:2: ( ruleBoolean )
+            // InternalTestgeneratorDSL.g:12160:3: ruleBoolean
+            {
+             before(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariable__ProposalsAssignment_6_1_1"
+
+
+    // $ANTLR start "rule__Loop__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:12169:1: rule__Loop__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__Loop__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12173:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12174:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:12174:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12175:3: RULE_ID
+            {
+             before(grammarAccess.getLoopAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__NameAssignment_1"
+
+
+    // $ANTLR start "rule__Loop__StartAssignment_4"
+    // InternalTestgeneratorDSL.g:12184:1: rule__Loop__StartAssignment_4 : ( RULE_STRING ) ;
+    public final void rule__Loop__StartAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12188:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12189:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12189:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12190:3: RULE_STRING
+            {
+             before(grammarAccess.getLoopAccess().getStartSTRINGTerminalRuleCall_4_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getStartSTRINGTerminalRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__StartAssignment_4"
+
+
+    // $ANTLR start "rule__Loop__FollowerAssignment_7"
+    // InternalTestgeneratorDSL.g:12199:1: rule__Loop__FollowerAssignment_7 : ( RULE_STRING ) ;
+    public final void rule__Loop__FollowerAssignment_7() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12203:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12204:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12204:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12205:3: RULE_STRING
+            {
+             before(grammarAccess.getLoopAccess().getFollowerSTRINGTerminalRuleCall_7_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getFollowerSTRINGTerminalRuleCall_7_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__FollowerAssignment_7"
+
+
+    // $ANTLR start "rule__Loop__EndAssignment_10"
+    // InternalTestgeneratorDSL.g:12214:1: rule__Loop__EndAssignment_10 : ( RULE_STRING ) ;
+    public final void rule__Loop__EndAssignment_10() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12218:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12219:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12219:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12220:3: RULE_STRING
+            {
+             before(grammarAccess.getLoopAccess().getEndSTRINGTerminalRuleCall_10_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getEndSTRINGTerminalRuleCall_10_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__EndAssignment_10"
+
+
+    // $ANTLR start "rule__Loop__ComplexityAssignment_13"
+    // InternalTestgeneratorDSL.g:12229:1: rule__Loop__ComplexityAssignment_13 : ( RULE_INT ) ;
+    public final void rule__Loop__ComplexityAssignment_13() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12233:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12234:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12234:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12235:3: RULE_INT
+            {
+             before(grammarAccess.getLoopAccess().getComplexityINTTerminalRuleCall_13_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getComplexityINTTerminalRuleCall_13_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__ComplexityAssignment_13"
+
+
+    // $ANTLR start "rule__Loop__FrequenciesAssignment_17_0"
+    // InternalTestgeneratorDSL.g:12244:1: rule__Loop__FrequenciesAssignment_17_0 : ( RULE_INT ) ;
+    public final void rule__Loop__FrequenciesAssignment_17_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12248:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12249:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12249:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12250:3: RULE_INT
+            {
+             before(grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_0_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__FrequenciesAssignment_17_0"
+
+
+    // $ANTLR start "rule__Loop__FrequenciesAssignment_17_1_1"
+    // InternalTestgeneratorDSL.g:12259:1: rule__Loop__FrequenciesAssignment_17_1_1 : ( RULE_INT ) ;
+    public final void rule__Loop__FrequenciesAssignment_17_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12263:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12264:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12264:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12265:3: RULE_INT
+            {
+             before(grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_1_1_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Loop__FrequenciesAssignment_17_1_1"
+
+
+    // $ANTLR start "rule__Flow__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:12274:1: rule__Flow__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__Flow__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12278:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12279:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:12279:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12280:3: RULE_ID
+            {
+             before(grammarAccess.getFlowAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getFlowAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__NameAssignment_1"
+
+
+    // $ANTLR start "rule__Flow__BpmnReferenceAssignment_3"
+    // InternalTestgeneratorDSL.g:12289:1: rule__Flow__BpmnReferenceAssignment_3 : ( ruleBPMNReference ) ;
+    public final void rule__Flow__BpmnReferenceAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12293:1: ( ( ruleBPMNReference ) )
+            // InternalTestgeneratorDSL.g:12294:2: ( ruleBPMNReference )
+            {
+            // InternalTestgeneratorDSL.g:12294:2: ( ruleBPMNReference )
+            // InternalTestgeneratorDSL.g:12295:3: ruleBPMNReference
+            {
+             before(grammarAccess.getFlowAccess().getBpmnReferenceBPMNReferenceParserRuleCall_3_0()); 
+            pushFollow(FOLLOW_2);
+            ruleBPMNReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowAccess().getBpmnReferenceBPMNReferenceParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__BpmnReferenceAssignment_3"
+
+
+    // $ANTLR start "rule__Flow__InclElementsAssignment_8_0"
+    // InternalTestgeneratorDSL.g:12304:1: rule__Flow__InclElementsAssignment_8_0 : ( ruleFlowElementReference ) ;
+    public final void rule__Flow__InclElementsAssignment_8_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12308:1: ( ( ruleFlowElementReference ) )
+            // InternalTestgeneratorDSL.g:12309:2: ( ruleFlowElementReference )
+            {
+            // InternalTestgeneratorDSL.g:12309:2: ( ruleFlowElementReference )
+            // InternalTestgeneratorDSL.g:12310:3: ruleFlowElementReference
+            {
+             before(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFlowElementReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__InclElementsAssignment_8_0"
+
+
+    // $ANTLR start "rule__Flow__InclElementsAssignment_8_1_1"
+    // InternalTestgeneratorDSL.g:12319:1: rule__Flow__InclElementsAssignment_8_1_1 : ( ruleFlowElementReference ) ;
+    public final void rule__Flow__InclElementsAssignment_8_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12323:1: ( ( ruleFlowElementReference ) )
+            // InternalTestgeneratorDSL.g:12324:2: ( ruleFlowElementReference )
+            {
+            // InternalTestgeneratorDSL.g:12324:2: ( ruleFlowElementReference )
+            // InternalTestgeneratorDSL.g:12325:3: ruleFlowElementReference
+            {
+             before(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFlowElementReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__InclElementsAssignment_8_1_1"
+
+
+    // $ANTLR start "rule__Flow__ExclElementsAssignment_10_4_0"
+    // InternalTestgeneratorDSL.g:12334:1: rule__Flow__ExclElementsAssignment_10_4_0 : ( ruleFlowElementReference ) ;
+    public final void rule__Flow__ExclElementsAssignment_10_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12338:1: ( ( ruleFlowElementReference ) )
+            // InternalTestgeneratorDSL.g:12339:2: ( ruleFlowElementReference )
+            {
+            // InternalTestgeneratorDSL.g:12339:2: ( ruleFlowElementReference )
+            // InternalTestgeneratorDSL.g:12340:3: ruleFlowElementReference
+            {
+             before(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFlowElementReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__ExclElementsAssignment_10_4_0"
+
+
+    // $ANTLR start "rule__Flow__ExclElementsAssignment_10_4_1_1"
+    // InternalTestgeneratorDSL.g:12349:1: rule__Flow__ExclElementsAssignment_10_4_1_1 : ( ruleFlowElementReference ) ;
+    public final void rule__Flow__ExclElementsAssignment_10_4_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12353:1: ( ( ruleFlowElementReference ) )
+            // InternalTestgeneratorDSL.g:12354:2: ( ruleFlowElementReference )
+            {
+            // InternalTestgeneratorDSL.g:12354:2: ( ruleFlowElementReference )
+            // InternalTestgeneratorDSL.g:12355:3: ruleFlowElementReference
+            {
+             before(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFlowElementReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Flow__ExclElementsAssignment_10_4_1_1"
+
+
+    // $ANTLR start "rule__FlowReference__RefAssignment"
+    // InternalTestgeneratorDSL.g:12364:1: rule__FlowReference__RefAssignment : ( ( RULE_ID ) ) ;
+    public final void rule__FlowReference__RefAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12368:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12369:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12369:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12370:3: ( RULE_ID )
+            {
+             before(grammarAccess.getFlowReferenceAccess().getRefFlowCrossReference_0()); 
+            // InternalTestgeneratorDSL.g:12371:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12372:4: RULE_ID
+            {
+             before(grammarAccess.getFlowReferenceAccess().getRefFlowIDTerminalRuleCall_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getFlowReferenceAccess().getRefFlowIDTerminalRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getFlowReferenceAccess().getRefFlowCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__FlowReference__RefAssignment"
+
+
+    // $ANTLR start "rule__Test__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:12383:1: rule__Test__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__Test__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12387:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12388:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:12388:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12389:3: RULE_ID
+            {
+             before(grammarAccess.getTestAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__NameAssignment_1"
+
+
+    // $ANTLR start "rule__Test__FlowReferenceAssignment_3"
+    // InternalTestgeneratorDSL.g:12398:1: rule__Test__FlowReferenceAssignment_3 : ( ruleFlowReference ) ;
+    public final void rule__Test__FlowReferenceAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12402:1: ( ( ruleFlowReference ) )
+            // InternalTestgeneratorDSL.g:12403:2: ( ruleFlowReference )
+            {
+            // InternalTestgeneratorDSL.g:12403:2: ( ruleFlowReference )
+            // InternalTestgeneratorDSL.g:12404:3: ruleFlowReference
+            {
+             before(grammarAccess.getTestAccess().getFlowReferenceFlowReferenceParserRuleCall_3_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFlowReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getTestAccess().getFlowReferenceFlowReferenceParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__FlowReferenceAssignment_3"
+
+
+    // $ANTLR start "rule__Test__PriorityAssignment_4_2"
+    // InternalTestgeneratorDSL.g:12413:1: rule__Test__PriorityAssignment_4_2 : ( RULE_INT ) ;
+    public final void rule__Test__PriorityAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12417:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12418:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12418:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12419:3: RULE_INT
+            {
+             before(grammarAccess.getTestAccess().getPriorityINTTerminalRuleCall_4_2_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getTestAccess().getPriorityINTTerminalRuleCall_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__PriorityAssignment_4_2"
+
+
+    // $ANTLR start "rule__Test__DeclarationsAssignment_5_0"
+    // InternalTestgeneratorDSL.g:12428:1: rule__Test__DeclarationsAssignment_5_0 : ( ruleVariableDeclarations ) ;
+    public final void rule__Test__DeclarationsAssignment_5_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12432:1: ( ( ruleVariableDeclarations ) )
+            // InternalTestgeneratorDSL.g:12433:2: ( ruleVariableDeclarations )
+            {
+            // InternalTestgeneratorDSL.g:12433:2: ( ruleVariableDeclarations )
+            // InternalTestgeneratorDSL.g:12434:3: ruleVariableDeclarations
+            {
+             before(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDeclarations();
+
+            state._fsp--;
+
+             after(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__DeclarationsAssignment_5_0"
+
+
+    // $ANTLR start "rule__Test__DeclarationsAssignment_5_1_1"
+    // InternalTestgeneratorDSL.g:12443:1: rule__Test__DeclarationsAssignment_5_1_1 : ( ruleVariableDeclarations ) ;
+    public final void rule__Test__DeclarationsAssignment_5_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12447:1: ( ( ruleVariableDeclarations ) )
+            // InternalTestgeneratorDSL.g:12448:2: ( ruleVariableDeclarations )
+            {
+            // InternalTestgeneratorDSL.g:12448:2: ( ruleVariableDeclarations )
+            // InternalTestgeneratorDSL.g:12449:3: ruleVariableDeclarations
+            {
+             before(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDeclarations();
+
+            state._fsp--;
+
+             after(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__DeclarationsAssignment_5_1_1"
+
+
+    // $ANTLR start "rule__Test__EndCheckAssignment_6"
+    // InternalTestgeneratorDSL.g:12458:1: rule__Test__EndCheckAssignment_6 : ( ruleEndChecks ) ;
+    public final void rule__Test__EndCheckAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12462:1: ( ( ruleEndChecks ) )
+            // InternalTestgeneratorDSL.g:12463:2: ( ruleEndChecks )
+            {
+            // InternalTestgeneratorDSL.g:12463:2: ( ruleEndChecks )
+            // InternalTestgeneratorDSL.g:12464:3: ruleEndChecks
+            {
+             before(grammarAccess.getTestAccess().getEndCheckEndChecksParserRuleCall_6_0()); 
+            pushFollow(FOLLOW_2);
+            ruleEndChecks();
+
+            state._fsp--;
+
+             after(grammarAccess.getTestAccess().getEndCheckEndChecksParserRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__EndCheckAssignment_6"
+
+
+    // $ANTLR start "rule__Test__MocksAssignment_7_4_0"
+    // InternalTestgeneratorDSL.g:12473:1: rule__Test__MocksAssignment_7_4_0 : ( ruleMockReference ) ;
+    public final void rule__Test__MocksAssignment_7_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12477:1: ( ( ruleMockReference ) )
+            // InternalTestgeneratorDSL.g:12478:2: ( ruleMockReference )
+            {
+            // InternalTestgeneratorDSL.g:12478:2: ( ruleMockReference )
+            // InternalTestgeneratorDSL.g:12479:3: ruleMockReference
+            {
+             before(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleMockReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__MocksAssignment_7_4_0"
+
+
+    // $ANTLR start "rule__Test__MocksAssignment_7_4_1_1"
+    // InternalTestgeneratorDSL.g:12488:1: rule__Test__MocksAssignment_7_4_1_1 : ( ruleMockReference ) ;
+    public final void rule__Test__MocksAssignment_7_4_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12492:1: ( ( ruleMockReference ) )
+            // InternalTestgeneratorDSL.g:12493:2: ( ruleMockReference )
+            {
+            // InternalTestgeneratorDSL.g:12493:2: ( ruleMockReference )
+            // InternalTestgeneratorDSL.g:12494:3: ruleMockReference
+            {
+             before(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleMockReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__Test__MocksAssignment_7_4_1_1"
+
+
+    // $ANTLR start "rule__VariableDeclarations__TaskReferenceAssignment_3"
+    // InternalTestgeneratorDSL.g:12503:1: rule__VariableDeclarations__TaskReferenceAssignment_3 : ( ruleFlowElementReference ) ;
+    public final void rule__VariableDeclarations__TaskReferenceAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12507:1: ( ( ruleFlowElementReference ) )
+            // InternalTestgeneratorDSL.g:12508:2: ( ruleFlowElementReference )
+            {
+            // InternalTestgeneratorDSL.g:12508:2: ( ruleFlowElementReference )
+            // InternalTestgeneratorDSL.g:12509:3: ruleFlowElementReference
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceFlowElementReferenceParserRuleCall_3_0()); 
+            pushFollow(FOLLOW_2);
+            ruleFlowElementReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceFlowElementReferenceParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__TaskReferenceAssignment_3"
+
+
+    // $ANTLR start "rule__VariableDeclarations__VariablesAssignment_6_0"
+    // InternalTestgeneratorDSL.g:12518:1: rule__VariableDeclarations__VariablesAssignment_6_0 : ( ruleVariableDeclaration ) ;
+    public final void rule__VariableDeclarations__VariablesAssignment_6_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12522:1: ( ( ruleVariableDeclaration ) )
+            // InternalTestgeneratorDSL.g:12523:2: ( ruleVariableDeclaration )
+            {
+            // InternalTestgeneratorDSL.g:12523:2: ( ruleVariableDeclaration )
+            // InternalTestgeneratorDSL.g:12524:3: ruleVariableDeclaration
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__VariablesAssignment_6_0"
+
+
+    // $ANTLR start "rule__VariableDeclarations__VariablesAssignment_6_1_1"
+    // InternalTestgeneratorDSL.g:12533:1: rule__VariableDeclarations__VariablesAssignment_6_1_1 : ( ruleVariableDeclaration ) ;
+    public final void rule__VariableDeclarations__VariablesAssignment_6_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12537:1: ( ( ruleVariableDeclaration ) )
+            // InternalTestgeneratorDSL.g:12538:2: ( ruleVariableDeclaration )
+            {
+            // InternalTestgeneratorDSL.g:12538:2: ( ruleVariableDeclaration )
+            // InternalTestgeneratorDSL.g:12539:3: ruleVariableDeclaration
+            {
+             before(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__VariableDeclarations__VariablesAssignment_6_1_1"
+
+
+    // $ANTLR start "rule__EndChecks__EndChecksAssignment_4_0"
+    // InternalTestgeneratorDSL.g:12548:1: rule__EndChecks__EndChecksAssignment_4_0 : ( ruleEndCheck ) ;
+    public final void rule__EndChecks__EndChecksAssignment_4_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12552:1: ( ( ruleEndCheck ) )
+            // InternalTestgeneratorDSL.g:12553:2: ( ruleEndCheck )
+            {
+            // InternalTestgeneratorDSL.g:12553:2: ( ruleEndCheck )
+            // InternalTestgeneratorDSL.g:12554:3: ruleEndCheck
+            {
+             before(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleEndCheck();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__EndChecksAssignment_4_0"
+
+
+    // $ANTLR start "rule__EndChecks__EndChecksAssignment_4_1_1"
+    // InternalTestgeneratorDSL.g:12563:1: rule__EndChecks__EndChecksAssignment_4_1_1 : ( ruleEndCheck ) ;
+    public final void rule__EndChecks__EndChecksAssignment_4_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12567:1: ( ( ruleEndCheck ) )
+            // InternalTestgeneratorDSL.g:12568:2: ( ruleEndCheck )
+            {
+            // InternalTestgeneratorDSL.g:12568:2: ( ruleEndCheck )
+            // InternalTestgeneratorDSL.g:12569:3: ruleEndCheck
+            {
+             before(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleEndCheck();
+
+            state._fsp--;
+
+             after(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__EndChecks__EndChecksAssignment_4_1_1"
+
+
+    // $ANTLR start "rule__StringVariableDeclaration__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12578:1: rule__StringVariableDeclaration__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__StringVariableDeclaration__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12582:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12583:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12583:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12584:3: ( RULE_ID )
+            {
+             before(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12585:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12586:4: RULE_ID
+            {
+             before(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableDeclaration__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__StringVariableDeclaration__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12597:1: rule__StringVariableDeclaration__ValueAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__StringVariableDeclaration__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12601:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12602:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12602:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12603:3: RULE_STRING
+            {
+             before(grammarAccess.getStringVariableDeclarationAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getStringVariableDeclarationAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableDeclaration__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__IntVariableDeclaration__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12612:1: rule__IntVariableDeclaration__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__IntVariableDeclaration__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12616:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12617:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12617:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12618:3: ( RULE_ID )
+            {
+             before(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12619:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12620:4: RULE_ID
+            {
+             before(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableDeclaration__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__IntVariableDeclaration__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12631:1: rule__IntVariableDeclaration__ValueAssignment_2 : ( RULE_INT ) ;
+    public final void rule__IntVariableDeclaration__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12635:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12636:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12636:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12637:3: RULE_INT
+            {
+             before(grammarAccess.getIntVariableDeclarationAccess().getValueINTTerminalRuleCall_2_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getIntVariableDeclarationAccess().getValueINTTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableDeclaration__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__BooleanVariableDeclaration__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12646:1: rule__BooleanVariableDeclaration__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__BooleanVariableDeclaration__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12650:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12651:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12651:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12652:3: ( RULE_ID )
+            {
+             before(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12653:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12654:4: RULE_ID
+            {
+             before(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableDeclaration__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__BooleanVariableDeclaration__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12665:1: rule__BooleanVariableDeclaration__ValueAssignment_2 : ( ruleBoolean ) ;
+    public final void rule__BooleanVariableDeclaration__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12669:1: ( ( ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:12670:2: ( ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:12670:2: ( ruleBoolean )
+            // InternalTestgeneratorDSL.g:12671:3: ruleBoolean
+            {
+             before(grammarAccess.getBooleanVariableDeclarationAccess().getValueBooleanEnumRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableDeclarationAccess().getValueBooleanEnumRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableDeclaration__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__StringVariableEquals__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12680:1: rule__StringVariableEquals__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__StringVariableEquals__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12684:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12685:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12685:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12686:3: ( RULE_ID )
+            {
+             before(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12687:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12688:4: RULE_ID
+            {
+             before(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableEquals__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__StringVariableEquals__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12699:1: rule__StringVariableEquals__ValueAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__StringVariableEquals__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12703:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12704:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12704:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12705:3: RULE_STRING
+            {
+             before(grammarAccess.getStringVariableEqualsAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getStringVariableEqualsAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableEquals__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__IntVariableEquals__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12714:1: rule__IntVariableEquals__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__IntVariableEquals__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12718:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12719:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12719:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12720:3: ( RULE_ID )
+            {
+             before(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12721:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12722:4: RULE_ID
+            {
+             before(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableEquals__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__IntVariableEquals__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12733:1: rule__IntVariableEquals__ValueAssignment_2 : ( RULE_INT ) ;
+    public final void rule__IntVariableEquals__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12737:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12738:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12738:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12739:3: RULE_INT
+            {
+             before(grammarAccess.getIntVariableEqualsAccess().getValueINTTerminalRuleCall_2_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getIntVariableEqualsAccess().getValueINTTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableEquals__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__BooleanVariableEquals__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12748:1: rule__BooleanVariableEquals__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__BooleanVariableEquals__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12752:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12753:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12753:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12754:3: ( RULE_ID )
+            {
+             before(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12755:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12756:4: RULE_ID
+            {
+             before(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableEquals__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__BooleanVariableEquals__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12767:1: rule__BooleanVariableEquals__ValueAssignment_2 : ( ruleBoolean ) ;
+    public final void rule__BooleanVariableEquals__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12771:1: ( ( ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:12772:2: ( ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:12772:2: ( ruleBoolean )
+            // InternalTestgeneratorDSL.g:12773:3: ruleBoolean
+            {
+             before(grammarAccess.getBooleanVariableEqualsAccess().getValueBooleanEnumRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableEqualsAccess().getValueBooleanEnumRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableEquals__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__StringVariableNotEquals__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12782:1: rule__StringVariableNotEquals__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__StringVariableNotEquals__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12786:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12787:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12787:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12788:3: ( RULE_ID )
+            {
+             before(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12789:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12790:4: RULE_ID
+            {
+             before(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableNotEquals__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__StringVariableNotEquals__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12801:1: rule__StringVariableNotEquals__ValueAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__StringVariableNotEquals__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12805:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12806:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12806:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12807:3: RULE_STRING
+            {
+             before(grammarAccess.getStringVariableNotEqualsAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getStringVariableNotEqualsAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringVariableNotEquals__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__IntVariableNotEquals__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12816:1: rule__IntVariableNotEquals__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__IntVariableNotEquals__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12820:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12821:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12821:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12822:3: ( RULE_ID )
+            {
+             before(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12823:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12824:4: RULE_ID
+            {
+             before(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableNotEquals__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__IntVariableNotEquals__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12835:1: rule__IntVariableNotEquals__ValueAssignment_2 : ( RULE_INT ) ;
+    public final void rule__IntVariableNotEquals__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12839:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:12840:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:12840:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:12841:3: RULE_INT
+            {
+             before(grammarAccess.getIntVariableNotEqualsAccess().getValueINTTerminalRuleCall_2_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getIntVariableNotEqualsAccess().getValueINTTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntVariableNotEquals__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__BooleanVariableNotEquals__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:12850:1: rule__BooleanVariableNotEquals__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__BooleanVariableNotEquals__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12854:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12855:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12855:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12856:3: ( RULE_ID )
+            {
+             before(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:12857:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12858:4: RULE_ID
+            {
+             before(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableNotEquals__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__BooleanVariableNotEquals__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:12869:1: rule__BooleanVariableNotEquals__ValueAssignment_2 : ( ruleBoolean ) ;
+    public final void rule__BooleanVariableNotEquals__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12873:1: ( ( ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:12874:2: ( ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:12874:2: ( ruleBoolean )
+            // InternalTestgeneratorDSL.g:12875:3: ruleBoolean
+            {
+             before(grammarAccess.getBooleanVariableNotEqualsAccess().getValueBooleanEnumRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanVariableNotEqualsAccess().getValueBooleanEnumRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanVariableNotEquals__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__MockReference__RefAssignment"
+    // InternalTestgeneratorDSL.g:12884:1: rule__MockReference__RefAssignment : ( ( RULE_ID ) ) ;
+    public final void rule__MockReference__RefAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12888:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:12889:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:12889:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12890:3: ( RULE_ID )
+            {
+             before(grammarAccess.getMockReferenceAccess().getRefMockCrossReference_0()); 
+            // InternalTestgeneratorDSL.g:12891:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12892:4: RULE_ID
+            {
+             before(grammarAccess.getMockReferenceAccess().getRefMockIDTerminalRuleCall_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getMockReferenceAccess().getRefMockIDTerminalRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getMockReferenceAccess().getRefMockCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockReference__RefAssignment"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:12903:1: rule__ExternalServiceMock__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__ExternalServiceMock__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12907:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12908:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:12908:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12909:3: RULE_ID
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getExternalServiceMockAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__NameAssignment_1"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__ExternalTopicAssignment_4"
+    // InternalTestgeneratorDSL.g:12918:1: rule__ExternalServiceMock__ExternalTopicAssignment_4 : ( ruleExternalTopicReference ) ;
+    public final void rule__ExternalServiceMock__ExternalTopicAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12922:1: ( ( ruleExternalTopicReference ) )
+            // InternalTestgeneratorDSL.g:12923:2: ( ruleExternalTopicReference )
+            {
+            // InternalTestgeneratorDSL.g:12923:2: ( ruleExternalTopicReference )
+            // InternalTestgeneratorDSL.g:12924:3: ruleExternalTopicReference
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getExternalTopicExternalTopicReferenceParserRuleCall_4_0()); 
+            pushFollow(FOLLOW_2);
+            ruleExternalTopicReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalServiceMockAccess().getExternalTopicExternalTopicReferenceParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__ExternalTopicAssignment_4"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__MockingRulesAssignment_5_0"
+    // InternalTestgeneratorDSL.g:12933:1: rule__ExternalServiceMock__MockingRulesAssignment_5_0 : ( ruleMockingRule ) ;
+    public final void rule__ExternalServiceMock__MockingRulesAssignment_5_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12937:1: ( ( ruleMockingRule ) )
+            // InternalTestgeneratorDSL.g:12938:2: ( ruleMockingRule )
+            {
+            // InternalTestgeneratorDSL.g:12938:2: ( ruleMockingRule )
+            // InternalTestgeneratorDSL.g:12939:3: ruleMockingRule
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleMockingRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__MockingRulesAssignment_5_0"
+
+
+    // $ANTLR start "rule__ExternalServiceMock__MockingRulesAssignment_5_1_1"
+    // InternalTestgeneratorDSL.g:12948:1: rule__ExternalServiceMock__MockingRulesAssignment_5_1_1 : ( ruleMockingRule ) ;
+    public final void rule__ExternalServiceMock__MockingRulesAssignment_5_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12952:1: ( ( ruleMockingRule ) )
+            // InternalTestgeneratorDSL.g:12953:2: ( ruleMockingRule )
+            {
+            // InternalTestgeneratorDSL.g:12953:2: ( ruleMockingRule )
+            // InternalTestgeneratorDSL.g:12954:3: ruleMockingRule
+            {
+             before(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleMockingRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ExternalServiceMock__MockingRulesAssignment_5_1_1"
+
+
+    // $ANTLR start "rule__DelegateMock__NameAssignment_1"
+    // InternalTestgeneratorDSL.g:12963:1: rule__DelegateMock__NameAssignment_1 : ( RULE_ID ) ;
+    public final void rule__DelegateMock__NameAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12967:1: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:12968:2: ( RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:12968:2: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:12969:3: RULE_ID
+            {
+             before(grammarAccess.getDelegateMockAccess().getNameIDTerminalRuleCall_1_0()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getDelegateMockAccess().getNameIDTerminalRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__NameAssignment_1"
+
+
+    // $ANTLR start "rule__DelegateMock__ServiceTaskReferenceAssignment_3"
+    // InternalTestgeneratorDSL.g:12978:1: rule__DelegateMock__ServiceTaskReferenceAssignment_3 : ( ruleDelegateServiceTaskReference ) ;
+    public final void rule__DelegateMock__ServiceTaskReferenceAssignment_3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12982:1: ( ( ruleDelegateServiceTaskReference ) )
+            // InternalTestgeneratorDSL.g:12983:2: ( ruleDelegateServiceTaskReference )
+            {
+            // InternalTestgeneratorDSL.g:12983:2: ( ruleDelegateServiceTaskReference )
+            // InternalTestgeneratorDSL.g:12984:3: ruleDelegateServiceTaskReference
+            {
+             before(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0()); 
+            pushFollow(FOLLOW_2);
+            ruleDelegateServiceTaskReference();
+
+            state._fsp--;
+
+             after(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__ServiceTaskReferenceAssignment_3"
+
+
+    // $ANTLR start "rule__DelegateMock__DelegateClassAssignment_6"
+    // InternalTestgeneratorDSL.g:12993:1: rule__DelegateMock__DelegateClassAssignment_6 : ( RULE_STRING ) ;
+    public final void rule__DelegateMock__DelegateClassAssignment_6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:12997:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:12998:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:12998:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:12999:3: RULE_STRING
+            {
+             before(grammarAccess.getDelegateMockAccess().getDelegateClassSTRINGTerminalRuleCall_6_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getDelegateMockAccess().getDelegateClassSTRINGTerminalRuleCall_6_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__DelegateClassAssignment_6"
+
+
+    // $ANTLR start "rule__DelegateMock__ManualMocksAssignment_7_0"
+    // InternalTestgeneratorDSL.g:13008:1: rule__DelegateMock__ManualMocksAssignment_7_0 : ( ruleManualMock ) ;
+    public final void rule__DelegateMock__ManualMocksAssignment_7_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13012:1: ( ( ruleManualMock ) )
+            // InternalTestgeneratorDSL.g:13013:2: ( ruleManualMock )
+            {
+            // InternalTestgeneratorDSL.g:13013:2: ( ruleManualMock )
+            // InternalTestgeneratorDSL.g:13014:3: ruleManualMock
+            {
+             before(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleManualMock();
+
+            state._fsp--;
+
+             after(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__ManualMocksAssignment_7_0"
+
+
+    // $ANTLR start "rule__DelegateMock__ManualMocksAssignment_7_1_1"
+    // InternalTestgeneratorDSL.g:13023:1: rule__DelegateMock__ManualMocksAssignment_7_1_1 : ( ruleManualMock ) ;
+    public final void rule__DelegateMock__ManualMocksAssignment_7_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13027:1: ( ( ruleManualMock ) )
+            // InternalTestgeneratorDSL.g:13028:2: ( ruleManualMock )
+            {
+            // InternalTestgeneratorDSL.g:13028:2: ( ruleManualMock )
+            // InternalTestgeneratorDSL.g:13029:3: ruleManualMock
+            {
+             before(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleManualMock();
+
+            state._fsp--;
+
+             after(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DelegateMock__ManualMocksAssignment_7_1_1"
+
+
+    // $ANTLR start "rule__MockingRule__ComparisonsAssignment_5_0"
+    // InternalTestgeneratorDSL.g:13038:1: rule__MockingRule__ComparisonsAssignment_5_0 : ( ruleCompare ) ;
+    public final void rule__MockingRule__ComparisonsAssignment_5_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13042:1: ( ( ruleCompare ) )
+            // InternalTestgeneratorDSL.g:13043:2: ( ruleCompare )
+            {
+            // InternalTestgeneratorDSL.g:13043:2: ( ruleCompare )
+            // InternalTestgeneratorDSL.g:13044:3: ruleCompare
+            {
+             before(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleCompare();
+
+            state._fsp--;
+
+             after(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__ComparisonsAssignment_5_0"
+
+
+    // $ANTLR start "rule__MockingRule__ComparisonsAssignment_5_1_1"
+    // InternalTestgeneratorDSL.g:13053:1: rule__MockingRule__ComparisonsAssignment_5_1_1 : ( ruleCompare ) ;
+    public final void rule__MockingRule__ComparisonsAssignment_5_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13057:1: ( ( ruleCompare ) )
+            // InternalTestgeneratorDSL.g:13058:2: ( ruleCompare )
+            {
+            // InternalTestgeneratorDSL.g:13058:2: ( ruleCompare )
+            // InternalTestgeneratorDSL.g:13059:3: ruleCompare
+            {
+             before(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleCompare();
+
+            state._fsp--;
+
+             after(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__ComparisonsAssignment_5_1_1"
+
+
+    // $ANTLR start "rule__MockingRule__VariablesAssignment_9_0"
+    // InternalTestgeneratorDSL.g:13068:1: rule__MockingRule__VariablesAssignment_9_0 : ( ruleVariableDeclaration ) ;
+    public final void rule__MockingRule__VariablesAssignment_9_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13072:1: ( ( ruleVariableDeclaration ) )
+            // InternalTestgeneratorDSL.g:13073:2: ( ruleVariableDeclaration )
+            {
+            // InternalTestgeneratorDSL.g:13073:2: ( ruleVariableDeclaration )
+            // InternalTestgeneratorDSL.g:13074:3: ruleVariableDeclaration
+            {
+             before(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_0_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__VariablesAssignment_9_0"
+
+
+    // $ANTLR start "rule__MockingRule__VariablesAssignment_9_1_1"
+    // InternalTestgeneratorDSL.g:13083:1: rule__MockingRule__VariablesAssignment_9_1_1 : ( ruleVariableDeclaration ) ;
+    public final void rule__MockingRule__VariablesAssignment_9_1_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13087:1: ( ( ruleVariableDeclaration ) )
+            // InternalTestgeneratorDSL.g:13088:2: ( ruleVariableDeclaration )
+            {
+            // InternalTestgeneratorDSL.g:13088:2: ( ruleVariableDeclaration )
+            // InternalTestgeneratorDSL.g:13089:3: ruleVariableDeclaration
+            {
+             before(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_1_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleVariableDeclaration();
+
+            state._fsp--;
+
+             after(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_1_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__MockingRule__VariablesAssignment_9_1_1"
+
+
+    // $ANTLR start "rule__ManualMock__ServiceNameAssignment_2"
+    // InternalTestgeneratorDSL.g:13098:1: rule__ManualMock__ServiceNameAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__ManualMock__ServiceNameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13102:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:13103:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:13103:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:13104:3: RULE_STRING
+            {
+             before(grammarAccess.getManualMockAccess().getServiceNameSTRINGTerminalRuleCall_2_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getManualMockAccess().getServiceNameSTRINGTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__ServiceNameAssignment_2"
+
+
+    // $ANTLR start "rule__ManualMock__SetterAssignment_5"
+    // InternalTestgeneratorDSL.g:13113:1: rule__ManualMock__SetterAssignment_5 : ( RULE_STRING ) ;
+    public final void rule__ManualMock__SetterAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13117:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:13118:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:13118:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:13119:3: RULE_STRING
+            {
+             before(grammarAccess.getManualMockAccess().getSetterSTRINGTerminalRuleCall_5_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getManualMockAccess().getSetterSTRINGTerminalRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ManualMock__SetterAssignment_5"
+
+
+    // $ANTLR start "rule__StringCompare__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:13128:1: rule__StringCompare__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__StringCompare__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13132:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:13133:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:13133:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:13134:3: ( RULE_ID )
+            {
+             before(grammarAccess.getStringCompareAccess().getKeyStringVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:13135:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:13136:4: RULE_ID
+            {
+             before(grammarAccess.getStringCompareAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getStringCompareAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getStringCompareAccess().getKeyStringVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__StringCompare__CompareSymbolAssignment_1"
+    // InternalTestgeneratorDSL.g:13147:1: rule__StringCompare__CompareSymbolAssignment_1 : ( ruleStringCompareSymbol ) ;
+    public final void rule__StringCompare__CompareSymbolAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13151:1: ( ( ruleStringCompareSymbol ) )
+            // InternalTestgeneratorDSL.g:13152:2: ( ruleStringCompareSymbol )
+            {
+            // InternalTestgeneratorDSL.g:13152:2: ( ruleStringCompareSymbol )
+            // InternalTestgeneratorDSL.g:13153:3: ruleStringCompareSymbol
+            {
+             before(grammarAccess.getStringCompareAccess().getCompareSymbolStringCompareSymbolEnumRuleCall_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleStringCompareSymbol();
+
+            state._fsp--;
+
+             after(grammarAccess.getStringCompareAccess().getCompareSymbolStringCompareSymbolEnumRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__CompareSymbolAssignment_1"
+
+
+    // $ANTLR start "rule__StringCompare__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:13162:1: rule__StringCompare__ValueAssignment_2 : ( RULE_STRING ) ;
+    public final void rule__StringCompare__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13166:1: ( ( RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:13167:2: ( RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:13167:2: ( RULE_STRING )
+            // InternalTestgeneratorDSL.g:13168:3: RULE_STRING
+            {
+             before(grammarAccess.getStringCompareAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+            match(input,RULE_STRING,FOLLOW_2); 
+             after(grammarAccess.getStringCompareAccess().getValueSTRINGTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__StringCompare__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__IntCompare__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:13177:1: rule__IntCompare__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__IntCompare__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13181:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:13182:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:13182:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:13183:3: ( RULE_ID )
+            {
+             before(grammarAccess.getIntCompareAccess().getKeyIntVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:13184:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:13185:4: RULE_ID
+            {
+             before(grammarAccess.getIntCompareAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getIntCompareAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getIntCompareAccess().getKeyIntVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__IntCompare__CompareSymbolAssignment_1"
+    // InternalTestgeneratorDSL.g:13196:1: rule__IntCompare__CompareSymbolAssignment_1 : ( ruleIntCompareSymbol ) ;
+    public final void rule__IntCompare__CompareSymbolAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13200:1: ( ( ruleIntCompareSymbol ) )
+            // InternalTestgeneratorDSL.g:13201:2: ( ruleIntCompareSymbol )
+            {
+            // InternalTestgeneratorDSL.g:13201:2: ( ruleIntCompareSymbol )
+            // InternalTestgeneratorDSL.g:13202:3: ruleIntCompareSymbol
+            {
+             before(grammarAccess.getIntCompareAccess().getCompareSymbolIntCompareSymbolEnumRuleCall_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleIntCompareSymbol();
+
+            state._fsp--;
+
+             after(grammarAccess.getIntCompareAccess().getCompareSymbolIntCompareSymbolEnumRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__CompareSymbolAssignment_1"
+
+
+    // $ANTLR start "rule__IntCompare__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:13211:1: rule__IntCompare__ValueAssignment_2 : ( RULE_INT ) ;
+    public final void rule__IntCompare__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13215:1: ( ( RULE_INT ) )
+            // InternalTestgeneratorDSL.g:13216:2: ( RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:13216:2: ( RULE_INT )
+            // InternalTestgeneratorDSL.g:13217:3: RULE_INT
+            {
+             before(grammarAccess.getIntCompareAccess().getValueINTTerminalRuleCall_2_0()); 
+            match(input,RULE_INT,FOLLOW_2); 
+             after(grammarAccess.getIntCompareAccess().getValueINTTerminalRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__IntCompare__ValueAssignment_2"
+
+
+    // $ANTLR start "rule__BooleanCompare__KeyAssignment_0"
+    // InternalTestgeneratorDSL.g:13226:1: rule__BooleanCompare__KeyAssignment_0 : ( ( RULE_ID ) ) ;
+    public final void rule__BooleanCompare__KeyAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13230:1: ( ( ( RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:13231:2: ( ( RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:13231:2: ( ( RULE_ID ) )
+            // InternalTestgeneratorDSL.g:13232:3: ( RULE_ID )
+            {
+             before(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableCrossReference_0_0()); 
+            // InternalTestgeneratorDSL.g:13233:3: ( RULE_ID )
+            // InternalTestgeneratorDSL.g:13234:4: RULE_ID
+            {
+             before(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); 
+            match(input,RULE_ID,FOLLOW_2); 
+             after(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1()); 
+
+            }
+
+             after(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableCrossReference_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__KeyAssignment_0"
+
+
+    // $ANTLR start "rule__BooleanCompare__CompareSymbolAssignment_1"
+    // InternalTestgeneratorDSL.g:13245:1: rule__BooleanCompare__CompareSymbolAssignment_1 : ( ruleBooleanCompareSymbol ) ;
+    public final void rule__BooleanCompare__CompareSymbolAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13249:1: ( ( ruleBooleanCompareSymbol ) )
+            // InternalTestgeneratorDSL.g:13250:2: ( ruleBooleanCompareSymbol )
+            {
+            // InternalTestgeneratorDSL.g:13250:2: ( ruleBooleanCompareSymbol )
+            // InternalTestgeneratorDSL.g:13251:3: ruleBooleanCompareSymbol
+            {
+             before(grammarAccess.getBooleanCompareAccess().getCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleBooleanCompareSymbol();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanCompareAccess().getCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__CompareSymbolAssignment_1"
+
+
+    // $ANTLR start "rule__BooleanCompare__ValueAssignment_2"
+    // InternalTestgeneratorDSL.g:13260:1: rule__BooleanCompare__ValueAssignment_2 : ( ruleBoolean ) ;
+    public final void rule__BooleanCompare__ValueAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalTestgeneratorDSL.g:13264:1: ( ( ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:13265:2: ( ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:13265:2: ( ruleBoolean )
+            // InternalTestgeneratorDSL.g:13266:3: ruleBoolean
+            {
+             before(grammarAccess.getBooleanCompareAccess().getValueBooleanEnumRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleBoolean();
+
+            state._fsp--;
+
+             after(grammarAccess.getBooleanCompareAccess().getValueBooleanEnumRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__BooleanCompare__ValueAssignment_2"
+
+    // Delegated rules
+
+
+    protected DFA3 dfa3 = new DFA3(this);
+    static final String dfa_1s = "\15\uffff";
+    static final String dfa_2s = "\1\37\1\11\1\5\1\40\11\uffff";
+    static final String dfa_3s = "\1\37\1\11\1\5\1\55\11\uffff";
+    static final String dfa_4s = "\4\uffff\1\7\1\2\1\1\1\11\1\5\1\10\1\4\1\3\1\6";
+    static final String dfa_5s = "\15\uffff}>";
+    static final String[] dfa_6s = {
+            "\1\1",
+            "\1\2",
+            "\1\3",
+            "\1\6\1\uffff\1\5\1\13\1\12\1\10\1\14\4\uffff\1\4\1\11\1\7",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
+
+    class DFA3 extends DFA {
+
+        public DFA3(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 3;
+            this.eot = dfa_1;
+            this.eof = dfa_1;
+            this.min = dfa_2;
+            this.max = dfa_3;
+            this.accept = dfa_4;
+            this.special = dfa_5;
+            this.transition = dfa_6;
+        }
+        public String getDescription() {
+            return "1523:1: rule__FlowElement__Alternatives : ( ( ruleStartFlowElement ) | ( ruleEndFlowElement ) | ( ruleUserTaskFlowElement ) | ( ruleManualTaskFlowElement ) | ( ruleScriptTaskFlowElement ) | ( ruleServiceTaskFlowElement ) | ( ruleBusinessRuleTaskFlowElement ) | ( ruleGatewayFlowElement ) | ( ruleSequenceFlowElement ) );";
+        }
+    }
+ 
+
+    public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x101D800081000002L,0x0000000000000141L});
+    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000200L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000002000010L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000020000000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000480L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000100L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000102L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000100000000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000280L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000400000000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000008000000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000010000000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000020000000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000040000000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000100000000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0002000000000000L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000880L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000800L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000030080L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000030000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0020000000000000L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0040000000000000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0080000000000000L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0100000000000000L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0200000000000000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x2000000000000000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x4000000000000000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x8000000000000010L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x00000000000C0000L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000FC0000L});
+
+=======
 package de.fhmuenster.masterthesis.ide.contentassist.antlr.internal;
 
 import java.io.InputStream;
@@ -39495,4 +78923,5 @@ public class InternalTestgeneratorDSLParser extends AbstractInternalContentAssis
     public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x00000000000C0000L});
     public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000FC0000L});
 
+>>>>>>> master
 }
\ No newline at end of file
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/xtend-gen/de/fhmuenster/masterthesis/ide/.TestgeneratorDSLIdeModule.xtendbin b/de.fhmuenster.masterthesis.textgeneratordsl.ide/xtend-gen/de/fhmuenster/masterthesis/ide/.TestgeneratorDSLIdeModule.xtendbin
index 03ac3583fac8b52f5247c3a7c2b235356fb06846..5db56d426a9c1c8638527a6c9d115d97fb3a8406 100644
Binary files a/de.fhmuenster.masterthesis.textgeneratordsl.ide/xtend-gen/de/fhmuenster/masterthesis/ide/.TestgeneratorDSLIdeModule.xtendbin and b/de.fhmuenster.masterthesis.textgeneratordsl.ide/xtend-gen/de/fhmuenster/masterthesis/ide/.TestgeneratorDSLIdeModule.xtendbin differ
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ide/xtend-gen/de/fhmuenster/masterthesis/ide/.TestgeneratorDSLIdeSetup.xtendbin b/de.fhmuenster.masterthesis.textgeneratordsl.ide/xtend-gen/de/fhmuenster/masterthesis/ide/.TestgeneratorDSLIdeSetup.xtendbin
index 551a7676aa666cddf02f2cacfc8043cf3eea03a9..7cf7b3d9226a5eda03d3592c57f32b67472ddf07 100644
Binary files a/de.fhmuenster.masterthesis.textgeneratordsl.ide/xtend-gen/de/fhmuenster/masterthesis/ide/.TestgeneratorDSLIdeSetup.xtendbin and b/de.fhmuenster.masterthesis.textgeneratordsl.ide/xtend-gen/de/fhmuenster/masterthesis/ide/.TestgeneratorDSLIdeSetup.xtendbin differ
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl.ui/plugin.xml_gen b/de.fhmuenster.masterthesis.textgeneratordsl.ui/plugin.xml_gen
index 61b50cc630933005f0a8bec8e34e0a095ee41ffb..48f9c4c9b5bc337b02bcfdd36f8885ce47bcd0b2 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl.ui/plugin.xml_gen
+++ b/de.fhmuenster.masterthesis.textgeneratordsl.ui/plugin.xml_gen
@@ -1,425 +1,425 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-	<extension
-		point="org.eclipse.ui.editors">
-		<editor
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
-			contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
-			default="true"
-			extensions="bpmn-testgen"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL"
-			name="TestgeneratorDSL Editor">
-		</editor>
-	</extension>
-	<extension
-		point="org.eclipse.ui.handlers">
-		<handler
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
-			commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
-			<activeWhen>
-				<reference
-					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
-				</reference>
-			</activeWhen>
-		</handler>
-		<handler
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
-			commandId="de.fhmuenster.masterthesis.TestgeneratorDSL.validate">
-			<activeWhen>
-				<reference
-					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
-				</reference>
-			</activeWhen>
-		</handler>
-		<!-- copy qualified name -->
-		<handler
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
-			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
-			<activeWhen>
-				<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
-			</activeWhen>
-		</handler>
-		<handler
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
-			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
-			<activeWhen>
-				<and>
-					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.XtextEditor.opened" />
-					<iterate>
-						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
-					</iterate>
-				</and>
-			</activeWhen>
-		</handler>
-	</extension>
-	<extension point="org.eclipse.core.expressions.definitions">
-		<definition id="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
-			<and>
-				<reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
-				<with variable="activeEditor">
-					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
-						value="de.fhmuenster.masterthesis.TestgeneratorDSL"
-						forcePluginActivation="true"/>
-				</with>
-			</and>
-		</definition>
-		<definition id="de.fhmuenster.masterthesis.TestgeneratorDSL.XtextEditor.opened">
-			<and>
-				<reference definitionId="isXtextEditorActive"/>
-				<with variable="activeEditor">
-					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
-						value="de.fhmuenster.masterthesis.TestgeneratorDSL"
-						forcePluginActivation="true"/>
-				</with>
-			</and>
-		</definition>
-	</extension>
-	<extension
-			point="org.eclipse.ui.preferencePages">
-		<page
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL"
-			name="TestgeneratorDSL">
-			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
-		</page>
-		<page
-			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL.coloring"
-			name="Syntax Coloring">
-			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
-		</page>
-		<page
-			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL.templates"
-			name="Templates">
-			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
-		</page>
-	</extension>
-	<extension
-			point="org.eclipse.ui.propertyPages">
-		<page
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL"
-			name="TestgeneratorDSL">
-			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
-			<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="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"
-			label="TestgeneratorDSL"/>
-	</extension>
-	<extension
-		point="org.eclipse.ui.commands">
-		<command
-			description="Trigger expensive validation"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL.validate"
-			name="Validate">
-		</command>
-		<!-- copy qualified name -->
-		<command
-			id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
-			categoryId="org.eclipse.ui.category.edit"
-			description="Copy the qualified name for the selected element"
-			name="Copy Qualified Name">
-		</command>
-		<command
-			id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
-			categoryId="org.eclipse.ui.category.edit"
-			description="Copy the qualified name for the selected element"
-			name="Copy Qualified Name">
-		</command>
-	</extension>
-	<extension point="org.eclipse.ui.menus">
-		<menuContribution
-			locationURI="popup:#TextEditorContext?after=group.edit">
-			<command
-				commandId="de.fhmuenster.masterthesis.TestgeneratorDSL.validate"
-				style="push"
-				tooltip="Trigger expensive validation">
-				<visibleWhen checkEnabled="false">
-					<reference
-						definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
-					</reference>
-				</visibleWhen>
-			</command>
-		</menuContribution>
-		<!-- copy qualified name -->
-		<menuContribution locationURI="popup:#TextEditorContext?after=copy">
-			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
-				style="push" tooltip="Copy Qualified Name">
-				<visibleWhen checkEnabled="false">
-					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
-				</visibleWhen>
-			</command>
-		</menuContribution>
-		<menuContribution locationURI="menu:edit?after=copy">
-			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
-				style="push" tooltip="Copy Qualified Name">
-				<visibleWhen checkEnabled="false">
-					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
-				</visibleWhen>
-			</command>
-		</menuContribution>
-		<menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
-			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
-				style="push" tooltip="Copy Qualified Name">
-				<visibleWhen checkEnabled="false">
-					<and>
-						<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.XtextEditor.opened" />
-						<iterate>
-							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
-						</iterate>
-					</and>
-				</visibleWhen>
-			</command>
-		</menuContribution>
-	</extension>
-	<extension point="org.eclipse.ui.menus">
-		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
-			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
-				<visibleWhen checkEnabled="false">
-					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
-					</reference>
-				</visibleWhen>
-			</command>
-		</menuContribution>
-	</extension>
-	<extension point="org.eclipse.ui.handlers">
-		<handler
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
-			commandId="org.eclipse.xtext.ui.editor.FindReferences">
-			<activeWhen>
-				<reference
-					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
-				</reference>
-			</activeWhen>
-		</handler>
-	</extension>
-	<extension point="org.eclipse.core.contenttype.contentTypes">
-		<content-type
-			base-type="org.eclipse.core.runtime.text"
-			file-extensions="bpmn-testgen"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL.contenttype"
-			name="TestgeneratorDSL File"
-			priority="normal">
-		</content-type>
-	</extension>
-	<!-- adding resource factories -->
-	<extension
-		point="org.eclipse.emf.ecore.extension_parser">
-		<parser
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
-			type="bpmn-testgen">
-		</parser>
-	</extension>
-	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
-		<resourceServiceProvider
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
-			uriExtension="bpmn-testgen">
-		</resourceServiceProvider>
-	</extension>
-	<!-- marker definitions for de.fhmuenster.masterthesis.TestgeneratorDSL -->
-	<extension
-			id="testgeneratordsl.check.fast"
-			name="TestgeneratorDSL Problem"
-			point="org.eclipse.core.resources.markers">
-		<super type="org.eclipse.xtext.ui.check.fast"/>
-		<persistent value="true"/>
-	</extension>
-	<extension
-			id="testgeneratordsl.check.normal"
-			name="TestgeneratorDSL Problem"
-			point="org.eclipse.core.resources.markers">
-		<super type="org.eclipse.xtext.ui.check.normal"/>
-		<persistent value="true"/>
-	</extension>
-	<extension
-			id="testgeneratordsl.check.expensive"
-			name="TestgeneratorDSL Problem"
-			point="org.eclipse.core.resources.markers">
-		<super type="org.eclipse.xtext.ui.check.expensive"/>
-		<persistent value="true"/>
-	</extension>
-	<extension point="org.eclipse.xtext.builder.participant">
-		<participant
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
-			fileExtensions="bpmn-testgen"/>
-	</extension>
-	<extension point="org.eclipse.ui.preferencePages">
-		<page
-			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL.compiler.preferencePage"
-			name="Compiler">
-			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
-		</page>
-	</extension>
-	<extension point="org.eclipse.ui.propertyPages">
-		<page
-			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL.compiler.propertyPage"
-			name="Compiler">
-			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
-			<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.menus">
-		<menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
-			<command
-				commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
-				id="de.fhmuenster.masterthesis.TestgeneratorDSL.OpenGeneratedCode"
-				style="push">
-				<visibleWhen checkEnabled="false">
-					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
-				</visibleWhen>
-			</command>
-		</menuContribution>
-	</extension>
-	<extension point="org.eclipse.ui.handlers">
-		<handler
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
-			commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
-			<activeWhen>
-				<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
-			</activeWhen>
-		</handler>
-	</extension>
-	<!-- Quick Outline -->
-	<extension
-		point="org.eclipse.ui.handlers">
-		<handler
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
-			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
-			<activeWhen>
-				<reference
-					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.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="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened"/>
-				</visibleWhen>
-			</command>
-		</menuContribution>
-	</extension>
-	<!-- quickfix marker resolution generator for de.fhmuenster.masterthesis.TestgeneratorDSL -->
-	<extension
-			point="org.eclipse.ui.ide.markerResolution">
-		<markerResolutionGenerator
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
-			markerType="de.fhmuenster.masterthesis.textgeneratordsl.ui.testgeneratordsl.check.fast">
-			<attribute
-				name="FIXABLE_KEY"
-				value="true">
-			</attribute>
-		</markerResolutionGenerator>
-		<markerResolutionGenerator
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
-			markerType="de.fhmuenster.masterthesis.textgeneratordsl.ui.testgeneratordsl.check.normal">
-			<attribute
-				name="FIXABLE_KEY"
-				value="true">
-			</attribute>
-		</markerResolutionGenerator>
-		<markerResolutionGenerator
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
-			markerType="de.fhmuenster.masterthesis.textgeneratordsl.ui.testgeneratordsl.check.expensive">
-			<attribute
-				name="FIXABLE_KEY"
-				value="true">
-			</attribute>
-		</markerResolutionGenerator>
-	</extension>
-	<!-- Rename Refactoring -->
-	<extension point="org.eclipse.ui.handlers">
-		<handler
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
-			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
-			<activeWhen>
-				<reference
-					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
-				</reference>
-			</activeWhen>
-		</handler>
-	</extension>
-	<extension point="org.eclipse.ui.menus">
-		<menuContribution
-			locationURI="popup:#TextEditorContext?after=group.edit">
-			<command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
-				style="push">
-				<visibleWhen checkEnabled="false">
-					<reference
-						definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
-					</reference>
-				</visibleWhen>
-			</command>
-		</menuContribution>
-	</extension>
-	<extension point="org.eclipse.ui.preferencePages">
-		<page
-			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
-			id="de.fhmuenster.masterthesis.TestgeneratorDSL.refactoring"
-			name="Refactoring">
-			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
-		</page>
-	</extension>
-	<extension point="org.eclipse.compare.contentViewers">
-		<viewer id="de.fhmuenster.masterthesis.TestgeneratorDSL.compare.contentViewers"
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
-			extensions="bpmn-testgen">
-		</viewer>
-		<contentTypeBinding
-			contentTypeId="de.fhmuenster.masterthesis.TestgeneratorDSL.contenttype"
-			contentViewerId="de.fhmuenster.masterthesis.TestgeneratorDSL.compare.contentViewers" />
-	</extension>
-	<extension point="org.eclipse.compare.contentMergeViewers">
-		<viewer id="de.fhmuenster.masterthesis.TestgeneratorDSL.compare.contentMergeViewers"
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
-			extensions="bpmn-testgen" label="TestgeneratorDSL Compare">
-		</viewer>
-		<contentTypeBinding
-			contentTypeId="de.fhmuenster.masterthesis.TestgeneratorDSL.contenttype"
-			contentMergeViewerId="de.fhmuenster.masterthesis.TestgeneratorDSL.compare.contentMergeViewers" />
-	</extension>
-	<extension point="org.eclipse.ui.editors.documentProviders">
-		<provider id="de.fhmuenster.masterthesis.TestgeneratorDSL.editors.documentProviders"
-			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
-			extensions="bpmn-testgen">
-		</provider>
-	</extension>
-	<extension point="org.eclipse.team.core.fileTypes">
-		<fileTypes
-			extension="bpmn-testgen"
-			type="text">
-		</fileTypes>
-	</extension>
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+	<extension
+		point="org.eclipse.ui.editors">
+		<editor
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+			contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+			default="true"
+			extensions="bpmn-testgen"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL"
+			name="TestgeneratorDSL Editor">
+		</editor>
+	</extension>
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+			commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+			<activeWhen>
+				<reference
+					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<handler
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+			commandId="de.fhmuenster.masterthesis.TestgeneratorDSL.validate">
+			<activeWhen>
+				<reference
+					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<!-- copy qualified name -->
+		<handler
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+			<activeWhen>
+				<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
+			</activeWhen>
+		</handler>
+		<handler
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+			commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+			<activeWhen>
+				<and>
+					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.XtextEditor.opened" />
+					<iterate>
+						<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+					</iterate>
+				</and>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.core.expressions.definitions">
+		<definition id="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
+			<and>
+				<reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+				<with variable="activeEditor">
+					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+						value="de.fhmuenster.masterthesis.TestgeneratorDSL"
+						forcePluginActivation="true"/>
+				</with>
+			</and>
+		</definition>
+		<definition id="de.fhmuenster.masterthesis.TestgeneratorDSL.XtextEditor.opened">
+			<and>
+				<reference definitionId="isXtextEditorActive"/>
+				<with variable="activeEditor">
+					<test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+						value="de.fhmuenster.masterthesis.TestgeneratorDSL"
+						forcePluginActivation="true"/>
+				</with>
+			</and>
+		</definition>
+	</extension>
+	<extension
+			point="org.eclipse.ui.preferencePages">
+		<page
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL"
+			name="TestgeneratorDSL">
+			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
+		</page>
+		<page
+			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL.coloring"
+			name="Syntax Coloring">
+			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
+		</page>
+		<page
+			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL.templates"
+			name="Templates">
+			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
+		</page>
+	</extension>
+	<extension
+			point="org.eclipse.ui.propertyPages">
+		<page
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL"
+			name="TestgeneratorDSL">
+			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
+			<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="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"
+			label="TestgeneratorDSL"/>
+	</extension>
+	<extension
+		point="org.eclipse.ui.commands">
+		<command
+			description="Trigger expensive validation"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL.validate"
+			name="Validate">
+		</command>
+		<!-- copy qualified name -->
+		<command
+			id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+			categoryId="org.eclipse.ui.category.edit"
+			description="Copy the qualified name for the selected element"
+			name="Copy Qualified Name">
+		</command>
+		<command
+			id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+			categoryId="org.eclipse.ui.category.edit"
+			description="Copy the qualified name for the selected element"
+			name="Copy Qualified Name">
+		</command>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.edit">
+			<command
+				commandId="de.fhmuenster.masterthesis.TestgeneratorDSL.validate"
+				style="push"
+				tooltip="Trigger expensive validation">
+				<visibleWhen checkEnabled="false">
+					<reference
+						definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<!-- copy qualified name -->
+		<menuContribution locationURI="popup:#TextEditorContext?after=copy">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+				style="push" tooltip="Copy Qualified Name">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution locationURI="menu:edit?after=copy">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+				style="push" tooltip="Copy Qualified Name">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+			<command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+				style="push" tooltip="Copy Qualified Name">
+				<visibleWhen checkEnabled="false">
+					<and>
+						<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.XtextEditor.opened" />
+						<iterate>
+							<adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+						</iterate>
+					</and>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+			commandId="org.eclipse.xtext.ui.editor.FindReferences">
+			<activeWhen>
+				<reference
+					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.core.contenttype.contentTypes">
+		<content-type
+			base-type="org.eclipse.core.runtime.text"
+			file-extensions="bpmn-testgen"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL.contenttype"
+			name="TestgeneratorDSL File"
+			priority="normal">
+		</content-type>
+	</extension>
+	<!-- adding resource factories -->
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="bpmn-testgen">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+		<resourceServiceProvider
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+			uriExtension="bpmn-testgen">
+		</resourceServiceProvider>
+	</extension>
+	<!-- marker definitions for de.fhmuenster.masterthesis.TestgeneratorDSL -->
+	<extension
+			id="testgeneratordsl.check.fast"
+			name="TestgeneratorDSL Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.fast"/>
+		<persistent value="true"/>
+	</extension>
+	<extension
+			id="testgeneratordsl.check.normal"
+			name="TestgeneratorDSL Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.normal"/>
+		<persistent value="true"/>
+	</extension>
+	<extension
+			id="testgeneratordsl.check.expensive"
+			name="TestgeneratorDSL Problem"
+			point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.xtext.ui.check.expensive"/>
+		<persistent value="true"/>
+	</extension>
+	<extension point="org.eclipse.xtext.builder.participant">
+		<participant
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+			fileExtensions="bpmn-testgen"/>
+	</extension>
+	<extension point="org.eclipse.ui.preferencePages">
+		<page
+			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL.compiler.preferencePage"
+			name="Compiler">
+			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
+		</page>
+	</extension>
+	<extension point="org.eclipse.ui.propertyPages">
+		<page
+			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL.compiler.propertyPage"
+			name="Compiler">
+			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
+			<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.menus">
+		<menuContribution locationURI="popup:#TextEditorContext?after=xtext.ui.openDeclaration">
+			<command
+				commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand"
+				id="de.fhmuenster.masterthesis.TestgeneratorDSL.OpenGeneratedCode"
+				style="push">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.generator.trace.OpenGeneratedFileHandler"
+			commandId="org.eclipse.xtext.ui.OpenGeneratedFileCommand">
+			<activeWhen>
+				<reference definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened" />
+			</activeWhen>
+		</handler>
+	</extension>
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.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="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<!-- quickfix marker resolution generator for de.fhmuenster.masterthesis.TestgeneratorDSL -->
+	<extension
+			point="org.eclipse.ui.ide.markerResolution">
+		<markerResolutionGenerator
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="de.fhmuenster.masterthesis.textgeneratordsl.ui.testgeneratordsl.check.fast">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+		<markerResolutionGenerator
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="de.fhmuenster.masterthesis.textgeneratordsl.ui.testgeneratordsl.check.normal">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+		<markerResolutionGenerator
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+			markerType="de.fhmuenster.masterthesis.textgeneratordsl.ui.testgeneratordsl.check.expensive">
+			<attribute
+				name="FIXABLE_KEY"
+				value="true">
+			</attribute>
+		</markerResolutionGenerator>
+	</extension>
+	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.edit">
+			<command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+				style="push">
+				<visibleWhen checkEnabled="false">
+					<reference
+						definitionId="de.fhmuenster.masterthesis.TestgeneratorDSL.Editor.opened">
+					</reference>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.preferencePages">
+		<page
+			category="de.fhmuenster.masterthesis.TestgeneratorDSL"
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+			id="de.fhmuenster.masterthesis.TestgeneratorDSL.refactoring"
+			name="Refactoring">
+			<keywordReference id="de.fhmuenster.masterthesis.ui.keyword_TestgeneratorDSL"/>
+		</page>
+	</extension>
+	<extension point="org.eclipse.compare.contentViewers">
+		<viewer id="de.fhmuenster.masterthesis.TestgeneratorDSL.compare.contentViewers"
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+			extensions="bpmn-testgen">
+		</viewer>
+		<contentTypeBinding
+			contentTypeId="de.fhmuenster.masterthesis.TestgeneratorDSL.contenttype"
+			contentViewerId="de.fhmuenster.masterthesis.TestgeneratorDSL.compare.contentViewers" />
+	</extension>
+	<extension point="org.eclipse.compare.contentMergeViewers">
+		<viewer id="de.fhmuenster.masterthesis.TestgeneratorDSL.compare.contentMergeViewers"
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+			extensions="bpmn-testgen" label="TestgeneratorDSL Compare">
+		</viewer>
+		<contentTypeBinding
+			contentTypeId="de.fhmuenster.masterthesis.TestgeneratorDSL.contenttype"
+			contentMergeViewerId="de.fhmuenster.masterthesis.TestgeneratorDSL.compare.contentMergeViewers" />
+	</extension>
+	<extension point="org.eclipse.ui.editors.documentProviders">
+		<provider id="de.fhmuenster.masterthesis.TestgeneratorDSL.editors.documentProviders"
+			class="de.fhmuenster.masterthesis.ui.TestgeneratorDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+			extensions="bpmn-testgen">
+		</provider>
+	</extension>
+	<extension point="org.eclipse.team.core.fileTypes">
+		<fileTypes
+			extension="bpmn-testgen"
+			type="text">
+		</fileTypes>
+	</extension>
+</plugin>
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/plugin.xml_gen b/de.fhmuenster.masterthesis.textgeneratordsl/plugin.xml_gen
index e7f08cce23311045b1aec0489d5997ab350e1f79..fee2aa29a0ddabcb609034e7fc3260181f9af696 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/plugin.xml_gen
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/plugin.xml_gen
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-	<extension point="org.eclipse.emf.ecore.generated_package">
-		<package
-			uri = "http://www.fhmuenster.de/masterthesis/TestgeneratorDSL"
-			class = "de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage"
-			genModel = "model/generated/TestgeneratorDSL.genmodel" />
-	</extension>
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+	<extension point="org.eclipse.emf.ecore.generated_package">
+		<package
+			uri = "http://www.fhmuenster.de/masterthesis/TestgeneratorDSL"
+			class = "de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage"
+			genModel = "model/generated/TestgeneratorDSL.genmodel" />
+	</extension>
+</plugin>
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/TestgeneratorDSL.xtextbin b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/TestgeneratorDSL.xtextbin
index a9b281ae6101c54ec3561463f250ad88a4bfada3..03689fa35f5a1732392afd66aa2f9f4d6ce171c2 100644
Binary files a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/TestgeneratorDSL.xtextbin and b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/TestgeneratorDSL.xtextbin differ
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSL.g b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSL.g
index 1fdc932a9baf08d098e17fd51ed2888bce145f80..935696abf87f1578ddbddf84a4d383e18aeac651 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSL.g
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSL.g
@@ -1,3 +1,4465 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+grammar InternalTestgeneratorDSL;
+
+options {
+	superClass=AbstractInternalAntlrParser;
+}
+
+@lexer::header {
+package de.fhmuenster.masterthesis.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 de.fhmuenster.masterthesis.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess;
+
+}
+
+@parser::members {
+
+ 	private TestgeneratorDSLGrammarAccess grammarAccess;
+
+    public InternalTestgeneratorDSLParser(TokenStream input, TestgeneratorDSLGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+
+    @Override
+    protected String getFirstRuleName() {
+    	return "Model";
+   	}
+
+   	@Override
+   	protected TestgeneratorDSLGrammarAccess getGrammarAccess() {
+   		return grammarAccess;
+   	}
+
+}
+
+@rulecatch {
+    catch (RecognitionException re) {
+        recover(input,re);
+        appendSkippedTokens();
+    }
+}
+
+// Entry rule entryRuleModel
+entryRuleModel returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getModelRule()); }
+	iv_ruleModel=ruleModel
+	{ $current=$iv_ruleModel.current; }
+	EOF;
+
+// Rule Model
+ruleModel returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				newCompositeNode(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_0());
+			}
+			lv_declarations_0_0=ruleDeclaration
+			{
+				if ($current==null) {
+					$current = createModelElementForParent(grammarAccess.getModelRule());
+				}
+				add(
+					$current,
+					"declarations",
+					lv_declarations_0_0,
+					"de.fhmuenster.masterthesis.TestgeneratorDSL.Declaration");
+				afterParserOrEnumRuleCall();
+			}
+		)
+	)*
+;
+
+// Entry rule entryRuleDeclaration
+entryRuleDeclaration returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getDeclarationRule()); }
+	iv_ruleDeclaration=ruleDeclaration
+	{ $current=$iv_ruleDeclaration.current; }
+	EOF;
+
+// Rule Declaration
+ruleDeclaration returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getDeclarationAccess().getBPMNDiagramParserRuleCall_0());
+		}
+		this_BPMNDiagram_0=ruleBPMNDiagram
+		{
+			$current = $this_BPMNDiagram_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getDeclarationAccess().getFlowElementParserRuleCall_1());
+		}
+		this_FlowElement_1=ruleFlowElement
+		{
+			$current = $this_FlowElement_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getDeclarationAccess().getVariableParserRuleCall_2());
+		}
+		this_Variable_2=ruleVariable
+		{
+			$current = $this_Variable_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getDeclarationAccess().getFlowParserRuleCall_3());
+		}
+		this_Flow_3=ruleFlow
+		{
+			$current = $this_Flow_3.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getDeclarationAccess().getTestParserRuleCall_4());
+		}
+		this_Test_4=ruleTest
+		{
+			$current = $this_Test_4.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getDeclarationAccess().getMockParserRuleCall_5());
+		}
+		this_Mock_5=ruleMock
+		{
+			$current = $this_Mock_5.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getDeclarationAccess().getExternalTopicParserRuleCall_6());
+		}
+		this_ExternalTopic_6=ruleExternalTopic
+		{
+			$current = $this_ExternalTopic_6.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getDeclarationAccess().getLoopParserRuleCall_7());
+		}
+		this_Loop_7=ruleLoop
+		{
+			$current = $this_Loop_7.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleBPMNDiagram
+entryRuleBPMNDiagram returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getBPMNDiagramRule()); }
+	iv_ruleBPMNDiagram=ruleBPMNDiagram
+	{ $current=$iv_ruleBPMNDiagram.current; }
+	EOF;
+
+// Rule BPMNDiagram
+ruleBPMNDiagram returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='BPMNDiagram'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getBPMNDiagramAccess().getBPMNDiagramKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getBPMNDiagramAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBPMNDiagramRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='with'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getBPMNDiagramAccess().getWithKeyword_2());
+		}
+		otherlv_3='testpackage'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getBPMNDiagramAccess().getTestpackageKeyword_3());
+		}
+		(
+			(
+				lv_testpackage_4_0=RULE_STRING
+				{
+					newLeafNode(lv_testpackage_4_0, grammarAccess.getBPMNDiagramAccess().getTestpackageSTRINGTerminalRuleCall_4_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBPMNDiagramRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"testpackage",
+						lv_testpackage_4_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		otherlv_5='with'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getBPMNDiagramAccess().getWithKeyword_5());
+		}
+		otherlv_6='bpmn'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getBPMNDiagramAccess().getBpmnKeyword_6());
+		}
+		(
+			(
+				lv_bpmn_7_0=RULE_STRING
+				{
+					newLeafNode(lv_bpmn_7_0, grammarAccess.getBPMNDiagramAccess().getBpmnSTRINGTerminalRuleCall_7_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBPMNDiagramRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"bpmn",
+						lv_bpmn_7_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		otherlv_8='with'
+		{
+			newLeafNode(otherlv_8, grammarAccess.getBPMNDiagramAccess().getWithKeyword_8());
+		}
+		otherlv_9='key'
+		{
+			newLeafNode(otherlv_9, grammarAccess.getBPMNDiagramAccess().getKeyKeyword_9());
+		}
+		(
+			(
+				lv_key_10_0=RULE_STRING
+				{
+					newLeafNode(lv_key_10_0, grammarAccess.getBPMNDiagramAccess().getKeySTRINGTerminalRuleCall_10_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBPMNDiagramRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"key",
+						lv_key_10_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		(
+			otherlv_11='with'
+			{
+				newLeafNode(otherlv_11, grammarAccess.getBPMNDiagramAccess().getWithKeyword_11_0());
+			}
+			otherlv_12='dmn'
+			{
+				newLeafNode(otherlv_12, grammarAccess.getBPMNDiagramAccess().getDmnKeyword_11_1());
+			}
+			this_ASSOCIATION_13=RULE_ASSOCIATION
+			{
+				newLeafNode(this_ASSOCIATION_13, grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_11_2());
+			}
+			this_LIST_OPEN_14=RULE_LIST_OPEN
+			{
+				newLeafNode(this_LIST_OPEN_14, grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_11_3());
+			}
+			(
+				(
+					(
+						lv_dmn_15_0=RULE_STRING
+						{
+							newLeafNode(lv_dmn_15_0, grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_0_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getBPMNDiagramRule());
+							}
+							addWithLastConsumed(
+								$current,
+								"dmn",
+								lv_dmn_15_0,
+								"org.eclipse.xtext.common.Terminals.STRING");
+						}
+					)
+				)
+				(
+					this_SEPARATOR_16=RULE_SEPARATOR
+					{
+						newLeafNode(this_SEPARATOR_16, grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_11_4_1_0());
+					}
+					(
+						(
+							lv_dmn_17_0=RULE_STRING
+							{
+								newLeafNode(lv_dmn_17_0, grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_1_1_0());
+							}
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getBPMNDiagramRule());
+								}
+								addWithLastConsumed(
+									$current,
+									"dmn",
+									lv_dmn_17_0,
+									"org.eclipse.xtext.common.Terminals.STRING");
+							}
+						)
+					)
+				)*
+			)?
+			this_LIST_CLOSED_18=RULE_LIST_CLOSED
+			{
+				newLeafNode(this_LIST_CLOSED_18, grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_11_5());
+			}
+		)?
+		(
+			otherlv_19='with'
+			{
+				newLeafNode(otherlv_19, grammarAccess.getBPMNDiagramAccess().getWithKeyword_12_0());
+			}
+			otherlv_20='embedded'
+			{
+				newLeafNode(otherlv_20, grammarAccess.getBPMNDiagramAccess().getEmbeddedKeyword_12_1());
+			}
+			this_ASSOCIATION_21=RULE_ASSOCIATION
+			{
+				newLeafNode(this_ASSOCIATION_21, grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_12_2());
+			}
+			this_LIST_OPEN_22=RULE_LIST_OPEN
+			{
+				newLeafNode(this_LIST_OPEN_22, grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_12_3());
+			}
+			(
+				(
+					(
+						lv_embedded_23_0=RULE_STRING
+						{
+							newLeafNode(lv_embedded_23_0, grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_0_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getBPMNDiagramRule());
+							}
+							addWithLastConsumed(
+								$current,
+								"embedded",
+								lv_embedded_23_0,
+								"org.eclipse.xtext.common.Terminals.STRING");
+						}
+					)
+				)
+				(
+					this_SEPARATOR_24=RULE_SEPARATOR
+					{
+						newLeafNode(this_SEPARATOR_24, grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_12_4_1_0());
+					}
+					(
+						(
+							lv_embedded_25_0=RULE_STRING
+							{
+								newLeafNode(lv_embedded_25_0, grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0());
+							}
+							{
+								if ($current==null) {
+									$current = createModelElement(grammarAccess.getBPMNDiagramRule());
+								}
+								addWithLastConsumed(
+									$current,
+									"embedded",
+									lv_embedded_25_0,
+									"org.eclipse.xtext.common.Terminals.STRING");
+							}
+						)
+					)
+				)*
+			)?
+			this_LIST_CLOSED_26=RULE_LIST_CLOSED
+			{
+				newLeafNode(this_LIST_CLOSED_26, grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_12_5());
+			}
+		)?
+		this_DECLARATION_FINISHED_27=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_27, grammarAccess.getBPMNDiagramAccess().getDECLARATION_FINISHEDTerminalRuleCall_13());
+		}
+	)
+;
+
+// Entry rule entryRuleBPMNReference
+entryRuleBPMNReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getBPMNReferenceRule()); }
+	iv_ruleBPMNReference=ruleBPMNReference
+	{ $current=$iv_ruleBPMNReference.current; }
+	EOF;
+
+// Rule BPMNReference
+ruleBPMNReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getBPMNReferenceRule());
+				}
+			}
+			otherlv_0=RULE_ID
+			{
+				newLeafNode(otherlv_0, grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramCrossReference_0());
+			}
+		)
+	)
+;
+
+// Entry rule entryRuleFlowElement
+entryRuleFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getFlowElementRule()); }
+	iv_ruleFlowElement=ruleFlowElement
+	{ $current=$iv_ruleFlowElement.current; }
+	EOF;
+
+// Rule FlowElement
+ruleFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getStartFlowElementParserRuleCall_0());
+		}
+		this_StartFlowElement_0=ruleStartFlowElement
+		{
+			$current = $this_StartFlowElement_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getEndFlowElementParserRuleCall_1());
+		}
+		this_EndFlowElement_1=ruleEndFlowElement
+		{
+			$current = $this_EndFlowElement_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getUserTaskFlowElementParserRuleCall_2());
+		}
+		this_UserTaskFlowElement_2=ruleUserTaskFlowElement
+		{
+			$current = $this_UserTaskFlowElement_2.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getManualTaskFlowElementParserRuleCall_3());
+		}
+		this_ManualTaskFlowElement_3=ruleManualTaskFlowElement
+		{
+			$current = $this_ManualTaskFlowElement_3.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getScriptTaskFlowElementParserRuleCall_4());
+		}
+		this_ScriptTaskFlowElement_4=ruleScriptTaskFlowElement
+		{
+			$current = $this_ScriptTaskFlowElement_4.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getServiceTaskFlowElementParserRuleCall_5());
+		}
+		this_ServiceTaskFlowElement_5=ruleServiceTaskFlowElement
+		{
+			$current = $this_ServiceTaskFlowElement_5.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getBusinessRuleTaskFlowElementParserRuleCall_6());
+		}
+		this_BusinessRuleTaskFlowElement_6=ruleBusinessRuleTaskFlowElement
+		{
+			$current = $this_BusinessRuleTaskFlowElement_6.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getGatewayFlowElementParserRuleCall_7());
+		}
+		this_GatewayFlowElement_7=ruleGatewayFlowElement
+		{
+			$current = $this_GatewayFlowElement_7.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getFlowElementAccess().getSequenceFlowElementParserRuleCall_8());
+		}
+		this_SequenceFlowElement_8=ruleSequenceFlowElement
+		{
+			$current = $this_SequenceFlowElement_8.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleStartFlowElement
+entryRuleStartFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getStartFlowElementRule()); }
+	iv_ruleStartFlowElement=ruleStartFlowElement
+	{ $current=$iv_ruleStartFlowElement.current; }
+	EOF;
+
+// Rule StartFlowElement
+ruleStartFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getStartFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getStartFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStartFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='StartEvent'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getStartFlowElementAccess().getStartEventKeyword_3());
+		}
+		(
+			otherlv_4='with'
+			{
+				newLeafNode(otherlv_4, grammarAccess.getStartFlowElementAccess().getWithKeyword_4_0());
+			}
+			otherlv_5='inputVariables'
+			{
+				newLeafNode(otherlv_5, grammarAccess.getStartFlowElementAccess().getInputVariablesKeyword_4_1());
+			}
+			this_ASSOCIATION_6=RULE_ASSOCIATION
+			{
+				newLeafNode(this_ASSOCIATION_6, grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2());
+			}
+			this_LIST_OPEN_7=RULE_LIST_OPEN
+			{
+				newLeafNode(this_LIST_OPEN_7, grammarAccess.getStartFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3());
+			}
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0());
+						}
+						lv_inputVariables_8_0=ruleVariableReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getStartFlowElementRule());
+							}
+							add(
+								$current,
+								"inputVariables",
+								lv_inputVariables_8_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					this_SEPARATOR_9=RULE_SEPARATOR
+					{
+						newLeafNode(this_SEPARATOR_9, grammarAccess.getStartFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0());
+							}
+							lv_inputVariables_10_0=ruleVariableReference
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getStartFlowElementRule());
+								}
+								add(
+									$current,
+									"inputVariables",
+									lv_inputVariables_10_0,
+									"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)*
+			)?
+			this_LIST_CLOSED_11=RULE_LIST_CLOSED
+			{
+				newLeafNode(this_LIST_CLOSED_11, grammarAccess.getStartFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5());
+			}
+		)?
+		this_DECLARATION_FINISHED_12=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_12, grammarAccess.getStartFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5());
+		}
+	)
+;
+
+// Entry rule entryRuleEndFlowElement
+entryRuleEndFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getEndFlowElementRule()); }
+	iv_ruleEndFlowElement=ruleEndFlowElement
+	{ $current=$iv_ruleEndFlowElement.current; }
+	EOF;
+
+// Rule EndFlowElement
+ruleEndFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getEndFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getEndFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getEndFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getEndFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='EndEvent'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getEndFlowElementAccess().getEndEventKeyword_3());
+		}
+		this_DECLARATION_FINISHED_4=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getEndFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+		}
+	)
+;
+
+// Entry rule entryRuleUserTaskFlowElement
+entryRuleUserTaskFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getUserTaskFlowElementRule()); }
+	iv_ruleUserTaskFlowElement=ruleUserTaskFlowElement
+	{ $current=$iv_ruleUserTaskFlowElement.current; }
+	EOF;
+
+// Rule UserTaskFlowElement
+ruleUserTaskFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getUserTaskFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getUserTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getUserTaskFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='UserTask'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getUserTaskFlowElementAccess().getUserTaskKeyword_3());
+		}
+		(
+			otherlv_4='with'
+			{
+				newLeafNode(otherlv_4, grammarAccess.getUserTaskFlowElementAccess().getWithKeyword_4_0());
+			}
+			otherlv_5='inputVariables'
+			{
+				newLeafNode(otherlv_5, grammarAccess.getUserTaskFlowElementAccess().getInputVariablesKeyword_4_1());
+			}
+			this_ASSOCIATION_6=RULE_ASSOCIATION
+			{
+				newLeafNode(this_ASSOCIATION_6, grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2());
+			}
+			this_LIST_OPEN_7=RULE_LIST_OPEN
+			{
+				newLeafNode(this_LIST_OPEN_7, grammarAccess.getUserTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3());
+			}
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0());
+						}
+						lv_inputVariables_8_0=ruleVariableReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getUserTaskFlowElementRule());
+							}
+							add(
+								$current,
+								"inputVariables",
+								lv_inputVariables_8_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					this_SEPARATOR_9=RULE_SEPARATOR
+					{
+						newLeafNode(this_SEPARATOR_9, grammarAccess.getUserTaskFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0());
+							}
+							lv_inputVariables_10_0=ruleVariableReference
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getUserTaskFlowElementRule());
+								}
+								add(
+									$current,
+									"inputVariables",
+									lv_inputVariables_10_0,
+									"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)*
+			)?
+			this_LIST_CLOSED_11=RULE_LIST_CLOSED
+			{
+				newLeafNode(this_LIST_CLOSED_11, grammarAccess.getUserTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5());
+			}
+		)?
+		this_DECLARATION_FINISHED_12=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_12, grammarAccess.getUserTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5());
+		}
+	)
+;
+
+// Entry rule entryRuleManualTaskFlowElement
+entryRuleManualTaskFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getManualTaskFlowElementRule()); }
+	iv_ruleManualTaskFlowElement=ruleManualTaskFlowElement
+	{ $current=$iv_ruleManualTaskFlowElement.current; }
+	EOF;
+
+// Rule ManualTaskFlowElement
+ruleManualTaskFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getManualTaskFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getManualTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getManualTaskFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getManualTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='ManualTask'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getManualTaskFlowElementAccess().getManualTaskKeyword_3());
+		}
+		this_DECLARATION_FINISHED_4=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getManualTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+		}
+	)
+;
+
+// Entry rule entryRuleScriptTaskFlowElement
+entryRuleScriptTaskFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getScriptTaskFlowElementRule()); }
+	iv_ruleScriptTaskFlowElement=ruleScriptTaskFlowElement
+	{ $current=$iv_ruleScriptTaskFlowElement.current; }
+	EOF;
+
+// Rule ScriptTaskFlowElement
+ruleScriptTaskFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getScriptTaskFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getScriptTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getScriptTaskFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getScriptTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='ScriptTask'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getScriptTaskFlowElementAccess().getScriptTaskKeyword_3());
+		}
+		this_DECLARATION_FINISHED_4=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getScriptTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+		}
+	)
+;
+
+// Entry rule entryRuleServiceTaskFlowElement
+entryRuleServiceTaskFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getServiceTaskFlowElementRule()); }
+	iv_ruleServiceTaskFlowElement=ruleServiceTaskFlowElement
+	{ $current=$iv_ruleServiceTaskFlowElement.current; }
+	EOF;
+
+// Rule ServiceTaskFlowElement
+ruleServiceTaskFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getServiceTaskFlowElementAccess().getDelegateServiceTaskFlowElementParserRuleCall_0());
+		}
+		this_DelegateServiceTaskFlowElement_0=ruleDelegateServiceTaskFlowElement
+		{
+			$current = $this_DelegateServiceTaskFlowElement_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getServiceTaskFlowElementAccess().getExternalServiceTaskFlowElementParserRuleCall_1());
+		}
+		this_ExternalServiceTaskFlowElement_1=ruleExternalServiceTaskFlowElement
+		{
+			$current = $this_ExternalServiceTaskFlowElement_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleDelegateServiceTaskFlowElement
+entryRuleDelegateServiceTaskFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getDelegateServiceTaskFlowElementRule()); }
+	iv_ruleDelegateServiceTaskFlowElement=ruleDelegateServiceTaskFlowElement
+	{ $current=$iv_ruleDelegateServiceTaskFlowElement.current; }
+	EOF;
+
+// Rule DelegateServiceTaskFlowElement
+ruleDelegateServiceTaskFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getDelegateServiceTaskFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getDelegateServiceTaskFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='ServiceTask'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getDelegateServiceTaskFlowElementAccess().getServiceTaskKeyword_3());
+		}
+		otherlv_4='with'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getDelegateServiceTaskFlowElementAccess().getWithKeyword_4());
+		}
+		otherlv_5='delegate'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateKeyword_5());
+		}
+		this_ASSOCIATION_6=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_6, grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6());
+		}
+		(
+			(
+				lv_delegate_7_0=RULE_STRING
+				{
+					newLeafNode(lv_delegate_7_0, grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateSTRINGTerminalRuleCall_7_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getDelegateServiceTaskFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"delegate",
+						lv_delegate_7_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		this_DECLARATION_FINISHED_8=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_8, grammarAccess.getDelegateServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+		}
+	)
+;
+
+// Entry rule entryRuleExternalServiceTaskFlowElement
+entryRuleExternalServiceTaskFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getExternalServiceTaskFlowElementRule()); }
+	iv_ruleExternalServiceTaskFlowElement=ruleExternalServiceTaskFlowElement
+	{ $current=$iv_ruleExternalServiceTaskFlowElement.current; }
+	EOF;
+
+// Rule ExternalServiceTaskFlowElement
+ruleExternalServiceTaskFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getExternalServiceTaskFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getExternalServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getExternalServiceTaskFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='ServiceTask'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getExternalServiceTaskFlowElementAccess().getServiceTaskKeyword_3());
+		}
+		otherlv_4='with'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_4());
+		}
+		otherlv_5='external'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalKeyword_5());
+		}
+		this_ASSOCIATION_6=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_6, grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicExternalTopicReferenceParserRuleCall_7_0());
+				}
+				lv_externalTopic_7_0=ruleExternalTopicReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getExternalServiceTaskFlowElementRule());
+					}
+					set(
+						$current,
+						"externalTopic",
+						lv_externalTopic_7_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ExternalTopicReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_8='with'
+			{
+				newLeafNode(otherlv_8, grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_8_0());
+			}
+			otherlv_9='hardcoded'
+			{
+				newLeafNode(otherlv_9, grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedKeyword_8_1());
+			}
+			otherlv_10='inputs'
+			{
+				newLeafNode(otherlv_10, grammarAccess.getExternalServiceTaskFlowElementAccess().getInputsKeyword_8_2());
+			}
+			this_ASSOCIATION_11=RULE_ASSOCIATION
+			{
+				newLeafNode(this_ASSOCIATION_11, grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_8_3());
+			}
+			this_LIST_OPEN_12=RULE_LIST_OPEN
+			{
+				newLeafNode(this_LIST_OPEN_12, grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_8_4());
+			}
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0());
+						}
+						lv_hardcodedInputs_13_0=ruleVariableDeclaration
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getExternalServiceTaskFlowElementRule());
+							}
+							add(
+								$current,
+								"hardcodedInputs",
+								lv_hardcodedInputs_13_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					this_SEPARATOR_14=RULE_SEPARATOR
+					{
+						newLeafNode(this_SEPARATOR_14, grammarAccess.getExternalServiceTaskFlowElementAccess().getSEPARATORTerminalRuleCall_8_5_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0());
+							}
+							lv_hardcodedInputs_15_0=ruleVariableDeclaration
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getExternalServiceTaskFlowElementRule());
+								}
+								add(
+									$current,
+									"hardcodedInputs",
+									lv_hardcodedInputs_15_0,
+									"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)*
+			)?
+			this_LIST_CLOSED_16=RULE_LIST_CLOSED
+			{
+				newLeafNode(this_LIST_CLOSED_16, grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_8_6());
+			}
+		)?
+		this_DECLARATION_FINISHED_17=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_17, grammarAccess.getExternalServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_9());
+		}
+	)
+;
+
+// Entry rule entryRuleBusinessRuleTaskFlowElement
+entryRuleBusinessRuleTaskFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getBusinessRuleTaskFlowElementRule()); }
+	iv_ruleBusinessRuleTaskFlowElement=ruleBusinessRuleTaskFlowElement
+	{ $current=$iv_ruleBusinessRuleTaskFlowElement.current; }
+	EOF;
+
+// Rule BusinessRuleTaskFlowElement
+ruleBusinessRuleTaskFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getBusinessRuleTaskFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBusinessRuleTaskFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getBusinessRuleTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='BusinessRuleTask'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getBusinessRuleTaskFlowElementAccess().getBusinessRuleTaskKeyword_3());
+		}
+		this_DECLARATION_FINISHED_4=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getBusinessRuleTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+		}
+	)
+;
+
+// Entry rule entryRuleGatewayFlowElement
+entryRuleGatewayFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getGatewayFlowElementRule()); }
+	iv_ruleGatewayFlowElement=ruleGatewayFlowElement
+	{ $current=$iv_ruleGatewayFlowElement.current; }
+	EOF;
+
+// Rule GatewayFlowElement
+ruleGatewayFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getGatewayFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getGatewayFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getGatewayFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getGatewayFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='Gateway'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getGatewayFlowElementAccess().getGatewayKeyword_3());
+		}
+		this_DECLARATION_FINISHED_4=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getGatewayFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+		}
+	)
+;
+
+// Entry rule entryRuleSequenceFlowElement
+entryRuleSequenceFlowElement returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getSequenceFlowElementRule()); }
+	iv_ruleSequenceFlowElement=ruleSequenceFlowElement
+	{ $current=$iv_ruleSequenceFlowElement.current; }
+	EOF;
+
+// Rule SequenceFlowElement
+ruleSequenceFlowElement returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='FlowElement'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getSequenceFlowElementAccess().getFlowElementKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getSequenceFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getSequenceFlowElementRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='SequenceFlow'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getSequenceFlowElementAccess().getSequenceFlowKeyword_3());
+		}
+		(
+			otherlv_4='with'
+			{
+				newLeafNode(otherlv_4, grammarAccess.getSequenceFlowElementAccess().getWithKeyword_4_0());
+			}
+			otherlv_5='expression'
+			{
+				newLeafNode(otherlv_5, grammarAccess.getSequenceFlowElementAccess().getExpressionKeyword_4_1());
+			}
+			this_ASSOCIATION_6=RULE_ASSOCIATION
+			{
+				newLeafNode(this_ASSOCIATION_6, grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2());
+			}
+			(
+				(
+					lv_expression_7_0=RULE_STRING
+					{
+						newLeafNode(lv_expression_7_0, grammarAccess.getSequenceFlowElementAccess().getExpressionSTRINGTerminalRuleCall_4_3_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getSequenceFlowElementRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"expression",
+							lv_expression_7_0,
+							"org.eclipse.xtext.common.Terminals.STRING");
+					}
+				)
+			)
+		)?
+		this_DECLARATION_FINISHED_8=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_8, grammarAccess.getSequenceFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5());
+		}
+	)
+;
+
+// Entry rule entryRuleFlowElementReference
+entryRuleFlowElementReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getFlowElementReferenceRule()); }
+	iv_ruleFlowElementReference=ruleFlowElementReference
+	{ $current=$iv_ruleFlowElementReference.current; }
+	EOF;
+
+// Rule FlowElementReference
+ruleFlowElementReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getFlowElementReferenceRule());
+				}
+			}
+			otherlv_0=RULE_ID
+			{
+				newLeafNode(otherlv_0, grammarAccess.getFlowElementReferenceAccess().getRefFlowElementCrossReference_0());
+			}
+		)
+	)
+;
+
+// Entry rule entryRuleDelegateServiceTaskReference
+entryRuleDelegateServiceTaskReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getDelegateServiceTaskReferenceRule()); }
+	iv_ruleDelegateServiceTaskReference=ruleDelegateServiceTaskReference
+	{ $current=$iv_ruleDelegateServiceTaskReference.current; }
+	EOF;
+
+// Rule DelegateServiceTaskReference
+ruleDelegateServiceTaskReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getDelegateServiceTaskReferenceRule());
+				}
+			}
+			otherlv_0=RULE_ID
+			{
+				newLeafNode(otherlv_0, grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementCrossReference_0());
+			}
+		)
+	)
+;
+
+// Entry rule entryRuleExternalTopic
+entryRuleExternalTopic returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getExternalTopicRule()); }
+	iv_ruleExternalTopic=ruleExternalTopic
+	{ $current=$iv_ruleExternalTopic.current; }
+	EOF;
+
+// Rule ExternalTopic
+ruleExternalTopic returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='ExternalTopic'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getExternalTopicAccess().getExternalTopicKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getExternalTopicAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getExternalTopicRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		this_DECLARATION_FINISHED_2=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_2, grammarAccess.getExternalTopicAccess().getDECLARATION_FINISHEDTerminalRuleCall_2());
+		}
+	)
+;
+
+// Entry rule entryRuleExternalTopicReference
+entryRuleExternalTopicReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getExternalTopicReferenceRule()); }
+	iv_ruleExternalTopicReference=ruleExternalTopicReference
+	{ $current=$iv_ruleExternalTopicReference.current; }
+	EOF;
+
+// Rule ExternalTopicReference
+ruleExternalTopicReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getExternalTopicReferenceRule());
+				}
+			}
+			otherlv_0=RULE_ID
+			{
+				newLeafNode(otherlv_0, grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicCrossReference_0());
+			}
+		)
+	)
+;
+
+// Entry rule entryRuleVariable
+entryRuleVariable returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getVariableRule()); }
+	iv_ruleVariable=ruleVariable
+	{ $current=$iv_ruleVariable.current; }
+	EOF;
+
+// Rule Variable
+ruleVariable returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getVariableAccess().getStringVariableParserRuleCall_0());
+		}
+		this_StringVariable_0=ruleStringVariable
+		{
+			$current = $this_StringVariable_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getVariableAccess().getIntVariableParserRuleCall_1());
+		}
+		this_IntVariable_1=ruleIntVariable
+		{
+			$current = $this_IntVariable_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getVariableAccess().getBooleanVariableParserRuleCall_2());
+		}
+		this_BooleanVariable_2=ruleBooleanVariable
+		{
+			$current = $this_BooleanVariable_2.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleVariableReference
+entryRuleVariableReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getVariableReferenceRule()); }
+	iv_ruleVariableReference=ruleVariableReference
+	{ $current=$iv_ruleVariableReference.current; }
+	EOF;
+
+// Rule VariableReference
+ruleVariableReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getVariableReferenceRule());
+				}
+			}
+			otherlv_0=RULE_ID
+			{
+				newLeafNode(otherlv_0, grammarAccess.getVariableReferenceAccess().getRefVariableCrossReference_0());
+			}
+		)
+	)
+;
+
+// Entry rule entryRuleStringVariable
+entryRuleStringVariable returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getStringVariableRule()); }
+	iv_ruleStringVariable=ruleStringVariable
+	{ $current=$iv_ruleStringVariable.current; }
+	EOF;
+
+// Rule StringVariable
+ruleStringVariable returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='String'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getStringVariableAccess().getStringKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getStringVariableAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringVariableRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='with'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getStringVariableAccess().getWithKeyword_2());
+		}
+		otherlv_3='proposals'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getStringVariableAccess().getProposalsKeyword_3());
+		}
+		this_ASSOCIATION_4=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_4, grammarAccess.getStringVariableAccess().getASSOCIATIONTerminalRuleCall_4());
+		}
+		this_LIST_OPEN_5=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_5, grammarAccess.getStringVariableAccess().getLIST_OPENTerminalRuleCall_5());
+		}
+		(
+			(
+				(
+					lv_proposals_6_0=RULE_STRING
+					{
+						newLeafNode(lv_proposals_6_0, grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getStringVariableRule());
+						}
+						addWithLastConsumed(
+							$current,
+							"proposals",
+							lv_proposals_6_0,
+							"org.eclipse.xtext.common.Terminals.STRING");
+					}
+				)
+			)
+			(
+				this_SEPARATOR_7=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_7, grammarAccess.getStringVariableAccess().getSEPARATORTerminalRuleCall_6_1_0());
+				}
+				(
+					(
+						lv_proposals_8_0=RULE_STRING
+						{
+							newLeafNode(lv_proposals_8_0, grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_1_1_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getStringVariableRule());
+							}
+							addWithLastConsumed(
+								$current,
+								"proposals",
+								lv_proposals_8_0,
+								"org.eclipse.xtext.common.Terminals.STRING");
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_9=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_9, grammarAccess.getStringVariableAccess().getLIST_CLOSEDTerminalRuleCall_7());
+		}
+		this_DECLARATION_FINISHED_10=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_10, grammarAccess.getStringVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+		}
+	)
+;
+
+// Entry rule entryRuleIntVariable
+entryRuleIntVariable returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getIntVariableRule()); }
+	iv_ruleIntVariable=ruleIntVariable
+	{ $current=$iv_ruleIntVariable.current; }
+	EOF;
+
+// Rule IntVariable
+ruleIntVariable returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='Integer'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getIntVariableAccess().getIntegerKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getIntVariableAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntVariableRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='with'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getIntVariableAccess().getWithKeyword_2());
+		}
+		otherlv_3='proposals'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getIntVariableAccess().getProposalsKeyword_3());
+		}
+		this_ASSOCIATION_4=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_4, grammarAccess.getIntVariableAccess().getASSOCIATIONTerminalRuleCall_4());
+		}
+		this_LIST_OPEN_5=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_5, grammarAccess.getIntVariableAccess().getLIST_OPENTerminalRuleCall_5());
+		}
+		(
+			(
+				(
+					lv_proposals_6_0=RULE_INT
+					{
+						newLeafNode(lv_proposals_6_0, grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getIntVariableRule());
+						}
+						addWithLastConsumed(
+							$current,
+							"proposals",
+							lv_proposals_6_0,
+							"org.eclipse.xtext.common.Terminals.INT");
+					}
+				)
+			)
+			(
+				this_SEPARATOR_7=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_7, grammarAccess.getIntVariableAccess().getSEPARATORTerminalRuleCall_6_1_0());
+				}
+				(
+					(
+						lv_proposals_8_0=RULE_INT
+						{
+							newLeafNode(lv_proposals_8_0, grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_1_1_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getIntVariableRule());
+							}
+							addWithLastConsumed(
+								$current,
+								"proposals",
+								lv_proposals_8_0,
+								"org.eclipse.xtext.common.Terminals.INT");
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_9=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_9, grammarAccess.getIntVariableAccess().getLIST_CLOSEDTerminalRuleCall_7());
+		}
+		this_DECLARATION_FINISHED_10=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_10, grammarAccess.getIntVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+		}
+	)
+;
+
+// Entry rule entryRuleBooleanVariable
+entryRuleBooleanVariable returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getBooleanVariableRule()); }
+	iv_ruleBooleanVariable=ruleBooleanVariable
+	{ $current=$iv_ruleBooleanVariable.current; }
+	EOF;
+
+// Rule BooleanVariable
+ruleBooleanVariable returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='Boolean'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getBooleanVariableAccess().getBooleanKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getBooleanVariableAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBooleanVariableRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='with'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getBooleanVariableAccess().getWithKeyword_2());
+		}
+		otherlv_3='proposals'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getBooleanVariableAccess().getProposalsKeyword_3());
+		}
+		this_ASSOCIATION_4=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_4, grammarAccess.getBooleanVariableAccess().getASSOCIATIONTerminalRuleCall_4());
+		}
+		this_LIST_OPEN_5=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_5, grammarAccess.getBooleanVariableAccess().getLIST_OPENTerminalRuleCall_5());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_0_0());
+					}
+					lv_proposals_6_0=ruleBoolean
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getBooleanVariableRule());
+						}
+						add(
+							$current,
+							"proposals",
+							lv_proposals_6_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_7=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_7, grammarAccess.getBooleanVariableAccess().getSEPARATORTerminalRuleCall_6_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_1_1_0());
+						}
+						lv_proposals_8_0=ruleBoolean
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getBooleanVariableRule());
+							}
+							add(
+								$current,
+								"proposals",
+								lv_proposals_8_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_9=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_9, grammarAccess.getBooleanVariableAccess().getLIST_CLOSEDTerminalRuleCall_7());
+		}
+		this_DECLARATION_FINISHED_10=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_10, grammarAccess.getBooleanVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+		}
+	)
+;
+
+// 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());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getLoopAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getLoopRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='starts'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getLoopAccess().getStartsKeyword_2());
+		}
+		otherlv_3='with'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getLoopAccess().getWithKeyword_3());
+		}
+		(
+			(
+				lv_start_4_0=RULE_STRING
+				{
+					newLeafNode(lv_start_4_0, grammarAccess.getLoopAccess().getStartSTRINGTerminalRuleCall_4_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getLoopRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"start",
+						lv_start_4_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		otherlv_5='follows'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getLoopAccess().getFollowsKeyword_5());
+		}
+		otherlv_6='by'
+		{
+			newLeafNode(otherlv_6, grammarAccess.getLoopAccess().getByKeyword_6());
+		}
+		(
+			(
+				lv_follower_7_0=RULE_STRING
+				{
+					newLeafNode(lv_follower_7_0, grammarAccess.getLoopAccess().getFollowerSTRINGTerminalRuleCall_7_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getLoopRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"follower",
+						lv_follower_7_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		otherlv_8='ends'
+		{
+			newLeafNode(otherlv_8, grammarAccess.getLoopAccess().getEndsKeyword_8());
+		}
+		otherlv_9='with'
+		{
+			newLeafNode(otherlv_9, grammarAccess.getLoopAccess().getWithKeyword_9());
+		}
+		(
+			(
+				lv_end_10_0=RULE_STRING
+				{
+					newLeafNode(lv_end_10_0, grammarAccess.getLoopAccess().getEndSTRINGTerminalRuleCall_10_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getLoopRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"end",
+						lv_end_10_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		otherlv_11='has'
+		{
+			newLeafNode(otherlv_11, grammarAccess.getLoopAccess().getHasKeyword_11());
+		}
+		otherlv_12='complexity'
+		{
+			newLeafNode(otherlv_12, grammarAccess.getLoopAccess().getComplexityKeyword_12());
+		}
+		(
+			(
+				lv_complexity_13_0=RULE_INT
+				{
+					newLeafNode(lv_complexity_13_0, grammarAccess.getLoopAccess().getComplexityINTTerminalRuleCall_13_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getLoopRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"complexity",
+						lv_complexity_13_0,
+						"org.eclipse.xtext.common.Terminals.INT");
+				}
+			)
+		)
+		otherlv_14='passed'
+		{
+			newLeafNode(otherlv_14, grammarAccess.getLoopAccess().getPassedKeyword_14());
+		}
+		this_ASSOCIATION_15=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_15, grammarAccess.getLoopAccess().getASSOCIATIONTerminalRuleCall_15());
+		}
+		this_LIST_OPEN_16=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_16, grammarAccess.getLoopAccess().getLIST_OPENTerminalRuleCall_16());
+		}
+		(
+			(
+				(
+					lv_frequencies_17_0=RULE_INT
+					{
+						newLeafNode(lv_frequencies_17_0, grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_0_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getLoopRule());
+						}
+						addWithLastConsumed(
+							$current,
+							"frequencies",
+							lv_frequencies_17_0,
+							"org.eclipse.xtext.common.Terminals.INT");
+					}
+				)
+			)
+			(
+				this_SEPARATOR_18=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_18, grammarAccess.getLoopAccess().getSEPARATORTerminalRuleCall_17_1_0());
+				}
+				(
+					(
+						lv_frequencies_19_0=RULE_INT
+						{
+							newLeafNode(lv_frequencies_19_0, grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_1_1_0());
+						}
+						{
+							if ($current==null) {
+								$current = createModelElement(grammarAccess.getLoopRule());
+							}
+							addWithLastConsumed(
+								$current,
+								"frequencies",
+								lv_frequencies_19_0,
+								"org.eclipse.xtext.common.Terminals.INT");
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_20=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_20, grammarAccess.getLoopAccess().getLIST_CLOSEDTerminalRuleCall_18());
+		}
+		this_DECLARATION_FINISHED_21=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_21, grammarAccess.getLoopAccess().getDECLARATION_FINISHEDTerminalRuleCall_19());
+		}
+	)
+;
+
+// Entry rule entryRuleFlow
+entryRuleFlow returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getFlowRule()); }
+	iv_ruleFlow=ruleFlow
+	{ $current=$iv_ruleFlow.current; }
+	EOF;
+
+// Rule Flow
+ruleFlow returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='Flow'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getFlowAccess().getFlowKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getFlowAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getFlowRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='for'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getFlowAccess().getForKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getFlowAccess().getBpmnReferenceBPMNReferenceParserRuleCall_3_0());
+				}
+				lv_bpmnReference_3_0=ruleBPMNReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getFlowRule());
+					}
+					set(
+						$current,
+						"bpmnReference",
+						lv_bpmnReference_3_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.BPMNReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_4='with'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getFlowAccess().getWithKeyword_4());
+		}
+		otherlv_5='elements'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getFlowAccess().getElementsKeyword_5());
+		}
+		this_ASSOCIATION_6=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_6, grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_6());
+		}
+		this_LIST_OPEN_7=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_7, grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_7());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_0_0());
+					}
+					lv_inclElements_8_0=ruleFlowElementReference
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getFlowRule());
+						}
+						add(
+							$current,
+							"inclElements",
+							lv_inclElements_8_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_9=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_9, grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_8_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_1_1_0());
+						}
+						lv_inclElements_10_0=ruleFlowElementReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getFlowRule());
+							}
+							add(
+								$current,
+								"inclElements",
+								lv_inclElements_10_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_11=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_11, grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_9());
+		}
+		(
+			otherlv_12='without'
+			{
+				newLeafNode(otherlv_12, grammarAccess.getFlowAccess().getWithoutKeyword_10_0());
+			}
+			otherlv_13='elements'
+			{
+				newLeafNode(otherlv_13, grammarAccess.getFlowAccess().getElementsKeyword_10_1());
+			}
+			this_ASSOCIATION_14=RULE_ASSOCIATION
+			{
+				newLeafNode(this_ASSOCIATION_14, grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_10_2());
+			}
+			this_LIST_OPEN_15=RULE_LIST_OPEN
+			{
+				newLeafNode(this_LIST_OPEN_15, grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_10_3());
+			}
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_0_0());
+						}
+						lv_exclElements_16_0=ruleFlowElementReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getFlowRule());
+							}
+							add(
+								$current,
+								"exclElements",
+								lv_exclElements_16_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					this_SEPARATOR_17=RULE_SEPARATOR
+					{
+						newLeafNode(this_SEPARATOR_17, grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_10_4_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0());
+							}
+							lv_exclElements_18_0=ruleFlowElementReference
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getFlowRule());
+								}
+								add(
+									$current,
+									"exclElements",
+									lv_exclElements_18_0,
+									"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)*
+			)?
+			this_LIST_CLOSED_19=RULE_LIST_CLOSED
+			{
+				newLeafNode(this_LIST_CLOSED_19, grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_10_5());
+			}
+		)?
+		this_DECLARATION_FINISHED_20=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_20, grammarAccess.getFlowAccess().getDECLARATION_FINISHEDTerminalRuleCall_11());
+		}
+	)
+;
+
+// Entry rule entryRuleFlowReference
+entryRuleFlowReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getFlowReferenceRule()); }
+	iv_ruleFlowReference=ruleFlowReference
+	{ $current=$iv_ruleFlowReference.current; }
+	EOF;
+
+// Rule FlowReference
+ruleFlowReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getFlowReferenceRule());
+				}
+			}
+			otherlv_0=RULE_ID
+			{
+				newLeafNode(otherlv_0, grammarAccess.getFlowReferenceAccess().getRefFlowCrossReference_0());
+			}
+		)
+	)
+;
+
+// Entry rule entryRuleTest
+entryRuleTest returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTestRule()); }
+	iv_ruleTest=ruleTest
+	{ $current=$iv_ruleTest.current; }
+	EOF;
+
+// Rule Test
+ruleTest returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='Test'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getTestAccess().getTestKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getTestAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTestRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='for'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getTestAccess().getForKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTestAccess().getFlowReferenceFlowReferenceParserRuleCall_3_0());
+				}
+				lv_flowReference_3_0=ruleFlowReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTestRule());
+					}
+					set(
+						$current,
+						"flowReference",
+						lv_flowReference_3_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_4='with'
+			{
+				newLeafNode(otherlv_4, grammarAccess.getTestAccess().getWithKeyword_4_0());
+			}
+			otherlv_5='priority'
+			{
+				newLeafNode(otherlv_5, grammarAccess.getTestAccess().getPriorityKeyword_4_1());
+			}
+			(
+				(
+					lv_priority_6_0=RULE_INT
+					{
+						newLeafNode(lv_priority_6_0, grammarAccess.getTestAccess().getPriorityINTTerminalRuleCall_4_2_0());
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTestRule());
+						}
+						setWithLastConsumed(
+							$current,
+							"priority",
+							lv_priority_6_0,
+							"org.eclipse.xtext.common.Terminals.INT");
+					}
+				)
+			)
+		)?
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_0_0());
+					}
+					lv_declarations_7_0=ruleVariableDeclarations
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getTestRule());
+						}
+						add(
+							$current,
+							"declarations",
+							lv_declarations_7_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclarations");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_8=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_8, grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_5_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0());
+						}
+						lv_declarations_9_0=ruleVariableDeclarations
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getTestRule());
+							}
+							add(
+								$current,
+								"declarations",
+								lv_declarations_9_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclarations");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTestAccess().getEndCheckEndChecksParserRuleCall_6_0());
+				}
+				lv_endCheck_10_0=ruleEndChecks
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTestRule());
+					}
+					set(
+						$current,
+						"endCheck",
+						lv_endCheck_10_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.EndChecks");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)?
+		(
+			otherlv_11='with'
+			{
+				newLeafNode(otherlv_11, grammarAccess.getTestAccess().getWithKeyword_7_0());
+			}
+			otherlv_12='mocks'
+			{
+				newLeafNode(otherlv_12, grammarAccess.getTestAccess().getMocksKeyword_7_1());
+			}
+			this_ASSOCIATION_13=RULE_ASSOCIATION
+			{
+				newLeafNode(this_ASSOCIATION_13, grammarAccess.getTestAccess().getASSOCIATIONTerminalRuleCall_7_2());
+			}
+			this_LIST_OPEN_14=RULE_LIST_OPEN
+			{
+				newLeafNode(this_LIST_OPEN_14, grammarAccess.getTestAccess().getLIST_OPENTerminalRuleCall_7_3());
+			}
+			(
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_0_0());
+						}
+						lv_mocks_15_0=ruleMockReference
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getTestRule());
+							}
+							add(
+								$current,
+								"mocks",
+								lv_mocks_15_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.MockReference");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+				(
+					this_SEPARATOR_16=RULE_SEPARATOR
+					{
+						newLeafNode(this_SEPARATOR_16, grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_7_4_1_0());
+					}
+					(
+						(
+							{
+								newCompositeNode(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_1_1_0());
+							}
+							lv_mocks_17_0=ruleMockReference
+							{
+								if ($current==null) {
+									$current = createModelElementForParent(grammarAccess.getTestRule());
+								}
+								add(
+									$current,
+									"mocks",
+									lv_mocks_17_0,
+									"de.fhmuenster.masterthesis.TestgeneratorDSL.MockReference");
+								afterParserOrEnumRuleCall();
+							}
+						)
+					)
+				)*
+			)?
+			this_LIST_CLOSED_18=RULE_LIST_CLOSED
+			{
+				newLeafNode(this_LIST_CLOSED_18, grammarAccess.getTestAccess().getLIST_CLOSEDTerminalRuleCall_7_5());
+			}
+		)?
+		this_DECLARATION_FINISHED_19=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_19, grammarAccess.getTestAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+		}
+	)
+;
+
+// Entry rule entryRuleVariableDeclarations
+entryRuleVariableDeclarations returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getVariableDeclarationsRule()); }
+	iv_ruleVariableDeclarations=ruleVariableDeclarations
+	{ $current=$iv_ruleVariableDeclarations.current; }
+	EOF;
+
+// Rule VariableDeclarations
+ruleVariableDeclarations returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='with'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getVariableDeclarationsAccess().getWithKeyword_0());
+		}
+		otherlv_1='variables'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getVariableDeclarationsAccess().getVariablesKeyword_1());
+		}
+		otherlv_2='for'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getVariableDeclarationsAccess().getForKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceFlowElementReferenceParserRuleCall_3_0());
+				}
+				lv_taskReference_3_0=ruleFlowElementReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getVariableDeclarationsRule());
+					}
+					set(
+						$current,
+						"taskReference",
+						lv_taskReference_3_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		this_ASSOCIATION_4=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_4, grammarAccess.getVariableDeclarationsAccess().getASSOCIATIONTerminalRuleCall_4());
+		}
+		this_LIST_OPEN_5=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_5, grammarAccess.getVariableDeclarationsAccess().getLIST_OPENTerminalRuleCall_5());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_0_0());
+					}
+					lv_variables_6_0=ruleVariableDeclaration
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getVariableDeclarationsRule());
+						}
+						add(
+							$current,
+							"variables",
+							lv_variables_6_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_7=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_7, grammarAccess.getVariableDeclarationsAccess().getSEPARATORTerminalRuleCall_6_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_1_1_0());
+						}
+						lv_variables_8_0=ruleVariableDeclaration
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getVariableDeclarationsRule());
+							}
+							add(
+								$current,
+								"variables",
+								lv_variables_8_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_9=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_9, grammarAccess.getVariableDeclarationsAccess().getLIST_CLOSEDTerminalRuleCall_7());
+		}
+	)
+;
+
+// Entry rule entryRuleEndChecks
+entryRuleEndChecks returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getEndChecksRule()); }
+	iv_ruleEndChecks=ruleEndChecks
+	{ $current=$iv_ruleEndChecks.current; }
+	EOF;
+
+// Rule EndChecks
+ruleEndChecks returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='with'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getEndChecksAccess().getWithKeyword_0());
+		}
+		otherlv_1='check'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getEndChecksAccess().getCheckKeyword_1());
+		}
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getEndChecksAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		this_LIST_OPEN_3=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_3, grammarAccess.getEndChecksAccess().getLIST_OPENTerminalRuleCall_3());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_0_0());
+					}
+					lv_endChecks_4_0=ruleEndCheck
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getEndChecksRule());
+						}
+						add(
+							$current,
+							"endChecks",
+							lv_endChecks_4_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.EndCheck");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_5=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_5, grammarAccess.getEndChecksAccess().getSEPARATORTerminalRuleCall_4_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_1_1_0());
+						}
+						lv_endChecks_6_0=ruleEndCheck
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getEndChecksRule());
+							}
+							add(
+								$current,
+								"endChecks",
+								lv_endChecks_6_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.EndCheck");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_7=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_7, grammarAccess.getEndChecksAccess().getLIST_CLOSEDTerminalRuleCall_5());
+		}
+	)
+;
+
+// Entry rule entryRuleVariableDeclaration
+entryRuleVariableDeclaration returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getVariableDeclarationRule()); }
+	iv_ruleVariableDeclaration=ruleVariableDeclaration
+	{ $current=$iv_ruleVariableDeclaration.current; }
+	EOF;
+
+// Rule VariableDeclaration
+ruleVariableDeclaration returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getVariableDeclarationAccess().getStringVariableDeclarationParserRuleCall_0());
+		}
+		this_StringVariableDeclaration_0=ruleStringVariableDeclaration
+		{
+			$current = $this_StringVariableDeclaration_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getVariableDeclarationAccess().getIntVariableDeclarationParserRuleCall_1());
+		}
+		this_IntVariableDeclaration_1=ruleIntVariableDeclaration
+		{
+			$current = $this_IntVariableDeclaration_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getVariableDeclarationAccess().getBooleanVariableDeclarationParserRuleCall_2());
+		}
+		this_BooleanVariableDeclaration_2=ruleBooleanVariableDeclaration
+		{
+			$current = $this_BooleanVariableDeclaration_2.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleStringVariableDeclaration
+entryRuleStringVariableDeclaration returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getStringVariableDeclarationRule()); }
+	iv_ruleStringVariableDeclaration=ruleStringVariableDeclaration
+	{ $current=$iv_ruleStringVariableDeclaration.current; }
+	EOF;
+
+// Rule StringVariableDeclaration
+ruleStringVariableDeclaration returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringVariableDeclarationRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getStringVariableDeclarationAccess().getEqualsSignKeyword_1());
+		}
+		(
+			(
+				lv_value_2_0=RULE_STRING
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getStringVariableDeclarationAccess().getValueSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringVariableDeclarationRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleIntVariableDeclaration
+entryRuleIntVariableDeclaration returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getIntVariableDeclarationRule()); }
+	iv_ruleIntVariableDeclaration=ruleIntVariableDeclaration
+	{ $current=$iv_ruleIntVariableDeclaration.current; }
+	EOF;
+
+// Rule IntVariableDeclaration
+ruleIntVariableDeclaration returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntVariableDeclarationRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getIntVariableDeclarationAccess().getEqualsSignKeyword_1());
+		}
+		(
+			(
+				lv_value_2_0=RULE_INT
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getIntVariableDeclarationAccess().getValueINTTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntVariableDeclarationRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.common.Terminals.INT");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleBooleanVariableDeclaration
+entryRuleBooleanVariableDeclaration returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getBooleanVariableDeclarationRule()); }
+	iv_ruleBooleanVariableDeclaration=ruleBooleanVariableDeclaration
+	{ $current=$iv_ruleBooleanVariableDeclaration.current; }
+	EOF;
+
+// Rule BooleanVariableDeclaration
+ruleBooleanVariableDeclaration returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBooleanVariableDeclarationRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getBooleanVariableDeclarationAccess().getEqualsSignKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getBooleanVariableDeclarationAccess().getValueBooleanEnumRuleCall_2_0());
+				}
+				lv_value_2_0=ruleBoolean
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getBooleanVariableDeclarationRule());
+					}
+					set(
+						$current,
+						"value",
+						lv_value_2_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleEndCheck
+entryRuleEndCheck returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getEndCheckRule()); }
+	iv_ruleEndCheck=ruleEndCheck
+	{ $current=$iv_ruleEndCheck.current; }
+	EOF;
+
+// Rule EndCheck
+ruleEndCheck returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getEndCheckAccess().getVariableEqualsParserRuleCall_0());
+		}
+		this_VariableEquals_0=ruleVariableEquals
+		{
+			$current = $this_VariableEquals_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getEndCheckAccess().getVariableNotEqualsParserRuleCall_1());
+		}
+		this_VariableNotEquals_1=ruleVariableNotEquals
+		{
+			$current = $this_VariableNotEquals_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleVariableEquals
+entryRuleVariableEquals returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getVariableEqualsRule()); }
+	iv_ruleVariableEquals=ruleVariableEquals
+	{ $current=$iv_ruleVariableEquals.current; }
+	EOF;
+
+// Rule VariableEquals
+ruleVariableEquals returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getVariableEqualsAccess().getStringVariableEqualsParserRuleCall_0());
+		}
+		this_StringVariableEquals_0=ruleStringVariableEquals
+		{
+			$current = $this_StringVariableEquals_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getVariableEqualsAccess().getIntVariableEqualsParserRuleCall_1());
+		}
+		this_IntVariableEquals_1=ruleIntVariableEquals
+		{
+			$current = $this_IntVariableEquals_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getVariableEqualsAccess().getBooleanVariableEqualsParserRuleCall_2());
+		}
+		this_BooleanVariableEquals_2=ruleBooleanVariableEquals
+		{
+			$current = $this_BooleanVariableEquals_2.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleStringVariableEquals
+entryRuleStringVariableEquals returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getStringVariableEqualsRule()); }
+	iv_ruleStringVariableEquals=ruleStringVariableEquals
+	{ $current=$iv_ruleStringVariableEquals.current; }
+	EOF;
+
+// Rule StringVariableEquals
+ruleStringVariableEquals returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringVariableEqualsRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='=='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getStringVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1());
+		}
+		(
+			(
+				lv_value_2_0=RULE_STRING
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getStringVariableEqualsAccess().getValueSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringVariableEqualsRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleIntVariableEquals
+entryRuleIntVariableEquals returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getIntVariableEqualsRule()); }
+	iv_ruleIntVariableEquals=ruleIntVariableEquals
+	{ $current=$iv_ruleIntVariableEquals.current; }
+	EOF;
+
+// Rule IntVariableEquals
+ruleIntVariableEquals returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntVariableEqualsRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='=='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getIntVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1());
+		}
+		(
+			(
+				lv_value_2_0=RULE_INT
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getIntVariableEqualsAccess().getValueINTTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntVariableEqualsRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.common.Terminals.INT");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleBooleanVariableEquals
+entryRuleBooleanVariableEquals returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getBooleanVariableEqualsRule()); }
+	iv_ruleBooleanVariableEquals=ruleBooleanVariableEquals
+	{ $current=$iv_ruleBooleanVariableEquals.current; }
+	EOF;
+
+// Rule BooleanVariableEquals
+ruleBooleanVariableEquals returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBooleanVariableEqualsRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='=='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getBooleanVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getBooleanVariableEqualsAccess().getValueBooleanEnumRuleCall_2_0());
+				}
+				lv_value_2_0=ruleBoolean
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getBooleanVariableEqualsRule());
+					}
+					set(
+						$current,
+						"value",
+						lv_value_2_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleVariableNotEquals
+entryRuleVariableNotEquals returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getVariableNotEqualsRule()); }
+	iv_ruleVariableNotEquals=ruleVariableNotEquals
+	{ $current=$iv_ruleVariableNotEquals.current; }
+	EOF;
+
+// Rule VariableNotEquals
+ruleVariableNotEquals returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getVariableNotEqualsAccess().getStringVariableNotEqualsParserRuleCall_0());
+		}
+		this_StringVariableNotEquals_0=ruleStringVariableNotEquals
+		{
+			$current = $this_StringVariableNotEquals_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getVariableNotEqualsAccess().getIntVariableNotEqualsParserRuleCall_1());
+		}
+		this_IntVariableNotEquals_1=ruleIntVariableNotEquals
+		{
+			$current = $this_IntVariableNotEquals_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getVariableNotEqualsAccess().getBooleanVariableNotEqualsParserRuleCall_2());
+		}
+		this_BooleanVariableNotEquals_2=ruleBooleanVariableNotEquals
+		{
+			$current = $this_BooleanVariableNotEquals_2.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleStringVariableNotEquals
+entryRuleStringVariableNotEquals returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getStringVariableNotEqualsRule()); }
+	iv_ruleStringVariableNotEquals=ruleStringVariableNotEquals
+	{ $current=$iv_ruleStringVariableNotEquals.current; }
+	EOF;
+
+// Rule StringVariableNotEquals
+ruleStringVariableNotEquals returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringVariableNotEqualsRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='!='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getStringVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1());
+		}
+		(
+			(
+				lv_value_2_0=RULE_STRING
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getStringVariableNotEqualsAccess().getValueSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringVariableNotEqualsRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleIntVariableNotEquals
+entryRuleIntVariableNotEquals returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getIntVariableNotEqualsRule()); }
+	iv_ruleIntVariableNotEquals=ruleIntVariableNotEquals
+	{ $current=$iv_ruleIntVariableNotEquals.current; }
+	EOF;
+
+// Rule IntVariableNotEquals
+ruleIntVariableNotEquals returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntVariableNotEqualsRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='!='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getIntVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1());
+		}
+		(
+			(
+				lv_value_2_0=RULE_INT
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getIntVariableNotEqualsAccess().getValueINTTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntVariableNotEqualsRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.common.Terminals.INT");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleBooleanVariableNotEquals
+entryRuleBooleanVariableNotEquals returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getBooleanVariableNotEqualsRule()); }
+	iv_ruleBooleanVariableNotEquals=ruleBooleanVariableNotEquals
+	{ $current=$iv_ruleBooleanVariableNotEquals.current; }
+	EOF;
+
+// Rule BooleanVariableNotEquals
+ruleBooleanVariableNotEquals returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBooleanVariableNotEqualsRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableCrossReference_0_0());
+				}
+			)
+		)
+		otherlv_1='!='
+		{
+			newLeafNode(otherlv_1, grammarAccess.getBooleanVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getBooleanVariableNotEqualsAccess().getValueBooleanEnumRuleCall_2_0());
+				}
+				lv_value_2_0=ruleBoolean
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getBooleanVariableNotEqualsRule());
+					}
+					set(
+						$current,
+						"value",
+						lv_value_2_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleMock
+entryRuleMock returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getMockRule()); }
+	iv_ruleMock=ruleMock
+	{ $current=$iv_ruleMock.current; }
+	EOF;
+
+// Rule Mock
+ruleMock returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getMockAccess().getExternalServiceMockParserRuleCall_0());
+		}
+		this_ExternalServiceMock_0=ruleExternalServiceMock
+		{
+			$current = $this_ExternalServiceMock_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getMockAccess().getDelegateMockParserRuleCall_1());
+		}
+		this_DelegateMock_1=ruleDelegateMock
+		{
+			$current = $this_DelegateMock_1.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleMockReference
+entryRuleMockReference returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getMockReferenceRule()); }
+	iv_ruleMockReference=ruleMockReference
+	{ $current=$iv_ruleMockReference.current; }
+	EOF;
+
+// Rule MockReference
+ruleMockReference returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getMockReferenceRule());
+				}
+			}
+			otherlv_0=RULE_ID
+			{
+				newLeafNode(otherlv_0, grammarAccess.getMockReferenceAccess().getRefMockCrossReference_0());
+			}
+		)
+	)
+;
+
+// Entry rule entryRuleExternalServiceMock
+entryRuleExternalServiceMock returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getExternalServiceMockRule()); }
+	iv_ruleExternalServiceMock=ruleExternalServiceMock
+	{ $current=$iv_ruleExternalServiceMock.current; }
+	EOF;
+
+// Rule ExternalServiceMock
+ruleExternalServiceMock returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='ExternalServiceMock'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getExternalServiceMockAccess().getExternalServiceMockKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getExternalServiceMockAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getExternalServiceMockRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='for'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getExternalServiceMockAccess().getForKeyword_2());
+		}
+		otherlv_3='topic'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getExternalServiceMockAccess().getTopicKeyword_3());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getExternalServiceMockAccess().getExternalTopicExternalTopicReferenceParserRuleCall_4_0());
+				}
+				lv_externalTopic_4_0=ruleExternalTopicReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getExternalServiceMockRule());
+					}
+					set(
+						$current,
+						"externalTopic",
+						lv_externalTopic_4_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ExternalTopicReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_0_0());
+					}
+					lv_mockingRules_5_0=ruleMockingRule
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getExternalServiceMockRule());
+						}
+						add(
+							$current,
+							"mockingRules",
+							lv_mockingRules_5_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.MockingRule");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_6=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_6, grammarAccess.getExternalServiceMockAccess().getSEPARATORTerminalRuleCall_5_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_1_1_0());
+						}
+						lv_mockingRules_7_0=ruleMockingRule
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getExternalServiceMockRule());
+							}
+							add(
+								$current,
+								"mockingRules",
+								lv_mockingRules_7_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.MockingRule");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		this_DECLARATION_FINISHED_8=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_8, grammarAccess.getExternalServiceMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_6());
+		}
+	)
+;
+
+// Entry rule entryRuleDelegateMock
+entryRuleDelegateMock returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getDelegateMockRule()); }
+	iv_ruleDelegateMock=ruleDelegateMock
+	{ $current=$iv_ruleDelegateMock.current; }
+	EOF;
+
+// Rule DelegateMock
+ruleDelegateMock returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='DelegateMock'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getDelegateMockAccess().getDelegateMockKeyword_0());
+		}
+		(
+			(
+				lv_name_1_0=RULE_ID
+				{
+					newLeafNode(lv_name_1_0, grammarAccess.getDelegateMockAccess().getNameIDTerminalRuleCall_1_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getDelegateMockRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"name",
+						lv_name_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+				}
+			)
+		)
+		otherlv_2='for'
+		{
+			newLeafNode(otherlv_2, grammarAccess.getDelegateMockAccess().getForKeyword_2());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0());
+				}
+				lv_serviceTaskReference_3_0=ruleDelegateServiceTaskReference
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getDelegateMockRule());
+					}
+					set(
+						$current,
+						"serviceTaskReference",
+						lv_serviceTaskReference_3_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.DelegateServiceTaskReference");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_4='with'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getDelegateMockAccess().getWithKeyword_4());
+		}
+		otherlv_5='delegate'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getDelegateMockAccess().getDelegateKeyword_5());
+		}
+		(
+			(
+				lv_delegateClass_6_0=RULE_STRING
+				{
+					newLeafNode(lv_delegateClass_6_0, grammarAccess.getDelegateMockAccess().getDelegateClassSTRINGTerminalRuleCall_6_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getDelegateMockRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"delegateClass",
+						lv_delegateClass_6_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_0_0());
+					}
+					lv_manualMocks_7_0=ruleManualMock
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getDelegateMockRule());
+						}
+						add(
+							$current,
+							"manualMocks",
+							lv_manualMocks_7_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.ManualMock");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_8=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_8, grammarAccess.getDelegateMockAccess().getSEPARATORTerminalRuleCall_7_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_1_1_0());
+						}
+						lv_manualMocks_9_0=ruleManualMock
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getDelegateMockRule());
+							}
+							add(
+								$current,
+								"manualMocks",
+								lv_manualMocks_9_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.ManualMock");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		this_DECLARATION_FINISHED_10=RULE_DECLARATION_FINISHED
+		{
+			newLeafNode(this_DECLARATION_FINISHED_10, grammarAccess.getDelegateMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+		}
+	)
+;
+
+// Entry rule entryRuleMockingRule
+entryRuleMockingRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getMockingRuleRule()); }
+	iv_ruleMockingRule=ruleMockingRule
+	{ $current=$iv_ruleMockingRule.current; }
+	EOF;
+
+// Rule MockingRule
+ruleMockingRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='with'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getMockingRuleAccess().getWithKeyword_0());
+		}
+		otherlv_1='rule'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getMockingRuleAccess().getRuleKeyword_1());
+		}
+		this_ASSOCIATION_2=RULE_ASSOCIATION
+		{
+			newLeafNode(this_ASSOCIATION_2, grammarAccess.getMockingRuleAccess().getASSOCIATIONTerminalRuleCall_2());
+		}
+		otherlv_3='if'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getMockingRuleAccess().getIfKeyword_3());
+		}
+		this_LIST_OPEN_4=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_4, grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_4());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_0_0());
+					}
+					lv_comparisons_5_0=ruleCompare
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getMockingRuleRule());
+						}
+						add(
+							$current,
+							"comparisons",
+							lv_comparisons_5_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.Compare");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_6=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_6, grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_5_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_1_1_0());
+						}
+						lv_comparisons_7_0=ruleCompare
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getMockingRuleRule());
+							}
+							add(
+								$current,
+								"comparisons",
+								lv_comparisons_7_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.Compare");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_8=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_8, grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_6());
+		}
+		otherlv_9='set'
+		{
+			newLeafNode(otherlv_9, grammarAccess.getMockingRuleAccess().getSetKeyword_7());
+		}
+		this_LIST_OPEN_10=RULE_LIST_OPEN
+		{
+			newLeafNode(this_LIST_OPEN_10, grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_8());
+		}
+		(
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_0_0());
+					}
+					lv_variables_11_0=ruleVariableDeclaration
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getMockingRuleRule());
+						}
+						add(
+							$current,
+							"variables",
+							lv_variables_11_0,
+							"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+			(
+				this_SEPARATOR_12=RULE_SEPARATOR
+				{
+					newLeafNode(this_SEPARATOR_12, grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_9_1_0());
+				}
+				(
+					(
+						{
+							newCompositeNode(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_1_1_0());
+						}
+						lv_variables_13_0=ruleVariableDeclaration
+						{
+							if ($current==null) {
+								$current = createModelElementForParent(grammarAccess.getMockingRuleRule());
+							}
+							add(
+								$current,
+								"variables",
+								lv_variables_13_0,
+								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+							afterParserOrEnumRuleCall();
+						}
+					)
+				)
+			)*
+		)?
+		this_LIST_CLOSED_14=RULE_LIST_CLOSED
+		{
+			newLeafNode(this_LIST_CLOSED_14, grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_10());
+		}
+	)
+;
+
+// Entry rule entryRuleManualMock
+entryRuleManualMock returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getManualMockRule()); }
+	iv_ruleManualMock=ruleManualMock
+	{ $current=$iv_ruleManualMock.current; }
+	EOF;
+
+// Rule ManualMock
+ruleManualMock returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='with'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getManualMockAccess().getWithKeyword_0());
+		}
+		otherlv_1='manual'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getManualMockAccess().getManualKeyword_1());
+		}
+		(
+			(
+				lv_serviceName_2_0=RULE_STRING
+				{
+					newLeafNode(lv_serviceName_2_0, grammarAccess.getManualMockAccess().getServiceNameSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getManualMockRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"serviceName",
+						lv_serviceName_2_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+		otherlv_3='by'
+		{
+			newLeafNode(otherlv_3, grammarAccess.getManualMockAccess().getByKeyword_3());
+		}
+		otherlv_4='setter'
+		{
+			newLeafNode(otherlv_4, grammarAccess.getManualMockAccess().getSetterKeyword_4());
+		}
+		(
+			(
+				lv_setter_5_0=RULE_STRING
+				{
+					newLeafNode(lv_setter_5_0, grammarAccess.getManualMockAccess().getSetterSTRINGTerminalRuleCall_5_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getManualMockRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"setter",
+						lv_setter_5_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleCompare
+entryRuleCompare returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getCompareRule()); }
+	iv_ruleCompare=ruleCompare
+	{ $current=$iv_ruleCompare.current; }
+	EOF;
+
+// Rule Compare
+ruleCompare returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		{
+			newCompositeNode(grammarAccess.getCompareAccess().getStringCompareParserRuleCall_0());
+		}
+		this_StringCompare_0=ruleStringCompare
+		{
+			$current = $this_StringCompare_0.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getCompareAccess().getIntCompareParserRuleCall_1());
+		}
+		this_IntCompare_1=ruleIntCompare
+		{
+			$current = $this_IntCompare_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			newCompositeNode(grammarAccess.getCompareAccess().getBooleanCompareParserRuleCall_2());
+		}
+		this_BooleanCompare_2=ruleBooleanCompare
+		{
+			$current = $this_BooleanCompare_2.current;
+			afterParserOrEnumRuleCall();
+		}
+	)
+;
+
+// Entry rule entryRuleStringCompare
+entryRuleStringCompare returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getStringCompareRule()); }
+	iv_ruleStringCompare=ruleStringCompare
+	{ $current=$iv_ruleStringCompare.current; }
+	EOF;
+
+// Rule StringCompare
+ruleStringCompare returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringCompareRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getStringCompareAccess().getKeyStringVariableCrossReference_0_0());
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getStringCompareAccess().getCompareSymbolStringCompareSymbolEnumRuleCall_1_0());
+				}
+				lv_compareSymbol_1_0=ruleStringCompareSymbol
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getStringCompareRule());
+					}
+					set(
+						$current,
+						"compareSymbol",
+						lv_compareSymbol_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.StringCompareSymbol");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				lv_value_2_0=RULE_STRING
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getStringCompareAccess().getValueSTRINGTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getStringCompareRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.common.Terminals.STRING");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleIntCompare
+entryRuleIntCompare returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getIntCompareRule()); }
+	iv_ruleIntCompare=ruleIntCompare
+	{ $current=$iv_ruleIntCompare.current; }
+	EOF;
+
+// Rule IntCompare
+ruleIntCompare returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntCompareRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getIntCompareAccess().getKeyIntVariableCrossReference_0_0());
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getIntCompareAccess().getCompareSymbolIntCompareSymbolEnumRuleCall_1_0());
+				}
+				lv_compareSymbol_1_0=ruleIntCompareSymbol
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getIntCompareRule());
+					}
+					set(
+						$current,
+						"compareSymbol",
+						lv_compareSymbol_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.IntCompareSymbol");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				lv_value_2_0=RULE_INT
+				{
+					newLeafNode(lv_value_2_0, grammarAccess.getIntCompareAccess().getValueINTTerminalRuleCall_2_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getIntCompareRule());
+					}
+					setWithLastConsumed(
+						$current,
+						"value",
+						lv_value_2_0,
+						"org.eclipse.xtext.common.Terminals.INT");
+				}
+			)
+		)
+	)
+;
+
+// Entry rule entryRuleBooleanCompare
+entryRuleBooleanCompare returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getBooleanCompareRule()); }
+	iv_ruleBooleanCompare=ruleBooleanCompare
+	{ $current=$iv_ruleBooleanCompare.current; }
+	EOF;
+
+// Rule BooleanCompare
+ruleBooleanCompare returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getBooleanCompareRule());
+					}
+				}
+				otherlv_0=RULE_ID
+				{
+					newLeafNode(otherlv_0, grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableCrossReference_0_0());
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getBooleanCompareAccess().getCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0());
+				}
+				lv_compareSymbol_1_0=ruleBooleanCompareSymbol
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getBooleanCompareRule());
+					}
+					set(
+						$current,
+						"compareSymbol",
+						lv_compareSymbol_1_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.BooleanCompareSymbol");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getBooleanCompareAccess().getValueBooleanEnumRuleCall_2_0());
+				}
+				lv_value_2_0=ruleBoolean
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getBooleanCompareRule());
+					}
+					set(
+						$current,
+						"value",
+						lv_value_2_0,
+						"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
+// Rule Boolean
+ruleBoolean returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='true'
+			{
+				$current = grammarAccess.getBooleanAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getBooleanAccess().getTRUEEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='false'
+			{
+				$current = grammarAccess.getBooleanAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getBooleanAccess().getFALSEEnumLiteralDeclaration_1());
+			}
+		)
+	)
+;
+
+// Rule StringCompareSymbol
+ruleStringCompareSymbol returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='=='
+			{
+				$current = grammarAccess.getStringCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getStringCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='!='
+			{
+				$current = grammarAccess.getStringCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getStringCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1());
+			}
+		)
+	)
+;
+
+// Rule IntCompareSymbol
+ruleIntCompareSymbol returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='=='
+			{
+				$current = grammarAccess.getIntCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getIntCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='!='
+			{
+				$current = grammarAccess.getIntCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getIntCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1());
+			}
+		)
+		    |
+		(
+			enumLiteral_2='<'
+			{
+				$current = grammarAccess.getIntCompareSymbolAccess().getLOWEREnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_2, grammarAccess.getIntCompareSymbolAccess().getLOWEREnumLiteralDeclaration_2());
+			}
+		)
+		    |
+		(
+			enumLiteral_3='>'
+			{
+				$current = grammarAccess.getIntCompareSymbolAccess().getGREATEREnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_3, grammarAccess.getIntCompareSymbolAccess().getGREATEREnumLiteralDeclaration_3());
+			}
+		)
+		    |
+		(
+			enumLiteral_4='<='
+			{
+				$current = grammarAccess.getIntCompareSymbolAccess().getLOWER_EQUALSEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_4, grammarAccess.getIntCompareSymbolAccess().getLOWER_EQUALSEnumLiteralDeclaration_4());
+			}
+		)
+		    |
+		(
+			enumLiteral_5='>='
+			{
+				$current = grammarAccess.getIntCompareSymbolAccess().getGREATER_EQUALSEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_5, grammarAccess.getIntCompareSymbolAccess().getGREATER_EQUALSEnumLiteralDeclaration_5());
+			}
+		)
+	)
+;
+
+// Rule BooleanCompareSymbol
+ruleBooleanCompareSymbol returns [Enumerator current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			enumLiteral_0='=='
+			{
+				$current = grammarAccess.getBooleanCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_0, grammarAccess.getBooleanCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0());
+			}
+		)
+		    |
+		(
+			enumLiteral_1='!='
+			{
+				$current = grammarAccess.getBooleanCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+				newLeafNode(enumLiteral_1, grammarAccess.getBooleanCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1());
+			}
+		)
+	)
+;
+
+RULE_LIST_OPEN : '[';
+
+RULE_LIST_CLOSED : ']';
+
+RULE_ASSOCIATION : ':';
+
+RULE_SEPARATOR : ',';
+
+RULE_DECLARATION_FINISHED : ';';
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_'|'-') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'-')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'|'\'' ('\\' .|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -4462,3 +8924,4 @@ RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
 RULE_WS : (' '|'\t'|'\r'|'\n')+;
 
 RULE_ANY_OTHER : .;
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSL.tokens b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSL.tokens
index 536c17b2c274064311a937243c1f49be2fc7d69a..f9142f3762f46a49986592981cb430e0bb5d7c3f 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSL.tokens
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSL.tokens
@@ -1,3 +1,141 @@
+<<<<<<< HEAD
+'!='=63
+'<'=74
+'<='=76
+'='=61
+'=='=62
+'>'=75
+'>='=77
+'BPMNDiagram'=16
+'Boolean'=43
+'BusinessRuleTask'=35
+'DelegateMock'=66
+'EndEvent'=26
+'ExternalServiceMock'=64
+'ExternalTopic'=39
+'Flow'=52
+'FlowElement'=23
+'Gateway'=36
+'Integer'=42
+'Loop'=44
+'ManualTask'=28
+'ScriptTask'=29
+'SequenceFlow'=37
+'ServiceTask'=30
+'StartEvent'=24
+'String'=40
+'Test'=56
+'UserTask'=27
+'bpmn'=19
+'by'=47
+'check'=60
+'complexity'=50
+'delegate'=31
+'dmn'=21
+'elements'=54
+'embedded'=22
+'ends'=48
+'expression'=38
+'external'=32
+'false'=73
+'follows'=46
+'for'=53
+'hardcoded'=33
+'has'=49
+'if'=68
+'inputVariables'=25
+'inputs'=34
+'key'=20
+'manual'=70
+'mocks'=58
+'passed'=51
+'priority'=57
+'proposals'=41
+'rule'=67
+'set'=69
+'setter'=71
+'starts'=45
+'testpackage'=18
+'topic'=65
+'true'=72
+'variables'=59
+'with'=17
+'without'=55
+RULE_ANY_OTHER=15
+RULE_ASSOCIATION=6
+RULE_DECLARATION_FINISHED=10
+RULE_ID=4
+RULE_INT=11
+RULE_LIST_CLOSED=9
+RULE_LIST_OPEN=7
+RULE_ML_COMMENT=12
+RULE_SEPARATOR=8
+RULE_SL_COMMENT=13
+RULE_STRING=5
+RULE_WS=14
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+=======
 '!='=63
 '<'=74
 '<='=76
@@ -134,3 +272,4 @@ T__74=74
 T__75=75
 T__76=76
 T__77=77
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSLLexer.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSLLexer.java
index f85cb846f1196a3fdda4783fc8d70f2dc106f836..bcda03a6e5d1197987041308a61cc0726b416516 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSLLexer.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSLLexer.java
@@ -1,3 +1,3149 @@
+<<<<<<< HEAD
+package de.fhmuenster.masterthesis.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 InternalTestgeneratorDSLLexer extends Lexer {
+    public static final int T__50=50;
+    public static final int T__19=19;
+    public static final int T__59=59;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__60=60;
+    public static final int T__61=61;
+    public static final int RULE_ID=4;
+    public static final int RULE_DECLARATION_FINISHED=10;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int RULE_INT=11;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__23=23;
+    public static final int T__67=67;
+    public static final int T__24=24;
+    public static final int T__68=68;
+    public static final int T__25=25;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__20=20;
+    public static final int T__64=64;
+    public static final int T__21=21;
+    public static final int T__65=65;
+    public static final int RULE_LIST_CLOSED=9;
+    public static final int T__70=70;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SEPARATOR=8;
+    public static final int RULE_SL_COMMENT=13;
+    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 T__33=33;
+    public static final int T__77=77;
+    public static final int RULE_LIST_OPEN=7;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int RULE_ASSOCIATION=6;
+    public static final int T__36=36;
+    public static final int T__73=73;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__74=74;
+    public static final int T__31=31;
+    public static final int T__75=75;
+    public static final int T__32=32;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+
+    // delegates
+    // delegators
+
+    public InternalTestgeneratorDSLLexer() {;} 
+    public InternalTestgeneratorDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalTestgeneratorDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "InternalTestgeneratorDSL.g"; }
+
+    // $ANTLR start "T__16"
+    public final void mT__16() throws RecognitionException {
+        try {
+            int _type = T__16;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:11:7: ( 'BPMNDiagram' )
+            // InternalTestgeneratorDSL.g:11:9: 'BPMNDiagram'
+            {
+            match("BPMNDiagram"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:12:7: ( 'with' )
+            // InternalTestgeneratorDSL.g:12:9: 'with'
+            {
+            match("with"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:13:7: ( 'testpackage' )
+            // InternalTestgeneratorDSL.g:13:9: 'testpackage'
+            {
+            match("testpackage"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:14:7: ( 'bpmn' )
+            // InternalTestgeneratorDSL.g:14:9: 'bpmn'
+            {
+            match("bpmn"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:15:7: ( 'key' )
+            // InternalTestgeneratorDSL.g:15:9: 'key'
+            {
+            match("key"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:16:7: ( 'dmn' )
+            // InternalTestgeneratorDSL.g:16:9: 'dmn'
+            {
+            match("dmn"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:17:7: ( 'embedded' )
+            // InternalTestgeneratorDSL.g:17:9: 'embedded'
+            {
+            match("embedded"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:18:7: ( 'FlowElement' )
+            // InternalTestgeneratorDSL.g:18:9: 'FlowElement'
+            {
+            match("FlowElement"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:19:7: ( 'StartEvent' )
+            // InternalTestgeneratorDSL.g:19:9: 'StartEvent'
+            {
+            match("StartEvent"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:20:7: ( 'inputVariables' )
+            // InternalTestgeneratorDSL.g:20:9: 'inputVariables'
+            {
+            match("inputVariables"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:21:7: ( 'EndEvent' )
+            // InternalTestgeneratorDSL.g:21:9: 'EndEvent'
+            {
+            match("EndEvent"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:22:7: ( 'UserTask' )
+            // InternalTestgeneratorDSL.g:22:9: 'UserTask'
+            {
+            match("UserTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:23:7: ( 'ManualTask' )
+            // InternalTestgeneratorDSL.g:23:9: 'ManualTask'
+            {
+            match("ManualTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:24:7: ( 'ScriptTask' )
+            // InternalTestgeneratorDSL.g:24:9: 'ScriptTask'
+            {
+            match("ScriptTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:25:7: ( 'ServiceTask' )
+            // InternalTestgeneratorDSL.g:25:9: 'ServiceTask'
+            {
+            match("ServiceTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:26:7: ( 'delegate' )
+            // InternalTestgeneratorDSL.g:26:9: 'delegate'
+            {
+            match("delegate"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:27:7: ( 'external' )
+            // InternalTestgeneratorDSL.g:27:9: 'external'
+            {
+            match("external"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:28:7: ( 'hardcoded' )
+            // InternalTestgeneratorDSL.g:28:9: 'hardcoded'
+            {
+            match("hardcoded"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:29:7: ( 'inputs' )
+            // InternalTestgeneratorDSL.g:29:9: 'inputs'
+            {
+            match("inputs"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:30:7: ( 'BusinessRuleTask' )
+            // InternalTestgeneratorDSL.g:30:9: 'BusinessRuleTask'
+            {
+            match("BusinessRuleTask"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:31:7: ( 'Gateway' )
+            // InternalTestgeneratorDSL.g:31:9: 'Gateway'
+            {
+            match("Gateway"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:32:7: ( 'SequenceFlow' )
+            // InternalTestgeneratorDSL.g:32:9: 'SequenceFlow'
+            {
+            match("SequenceFlow"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:33:7: ( 'expression' )
+            // InternalTestgeneratorDSL.g:33:9: 'expression'
+            {
+            match("expression"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:34:7: ( 'ExternalTopic' )
+            // InternalTestgeneratorDSL.g:34:9: 'ExternalTopic'
+            {
+            match("ExternalTopic"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:35:7: ( 'String' )
+            // InternalTestgeneratorDSL.g:35:9: 'String'
+            {
+            match("String"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:36:7: ( 'proposals' )
+            // InternalTestgeneratorDSL.g:36:9: 'proposals'
+            {
+            match("proposals"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:37:7: ( 'Integer' )
+            // InternalTestgeneratorDSL.g:37:9: 'Integer'
+            {
+            match("Integer"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:38:7: ( 'Boolean' )
+            // InternalTestgeneratorDSL.g:38:9: 'Boolean'
+            {
+            match("Boolean"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:39:7: ( 'Loop' )
+            // InternalTestgeneratorDSL.g:39:9: 'Loop'
+            {
+            match("Loop"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:40:7: ( 'starts' )
+            // InternalTestgeneratorDSL.g:40:9: 'starts'
+            {
+            match("starts"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:41:7: ( 'follows' )
+            // InternalTestgeneratorDSL.g:41:9: 'follows'
+            {
+            match("follows"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:42:7: ( 'by' )
+            // InternalTestgeneratorDSL.g:42:9: 'by'
+            {
+            match("by"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:43:7: ( 'ends' )
+            // InternalTestgeneratorDSL.g:43:9: 'ends'
+            {
+            match("ends"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:44:7: ( 'has' )
+            // InternalTestgeneratorDSL.g:44:9: 'has'
+            {
+            match("has"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:45:7: ( 'complexity' )
+            // InternalTestgeneratorDSL.g:45:9: 'complexity'
+            {
+            match("complexity"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:46:7: ( 'passed' )
+            // InternalTestgeneratorDSL.g:46:9: 'passed'
+            {
+            match("passed"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:47:7: ( 'Flow' )
+            // InternalTestgeneratorDSL.g:47:9: 'Flow'
+            {
+            match("Flow"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:48:7: ( 'for' )
+            // InternalTestgeneratorDSL.g:48:9: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:49:7: ( 'elements' )
+            // InternalTestgeneratorDSL.g:49:9: 'elements'
+            {
+            match("elements"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:50:7: ( 'without' )
+            // InternalTestgeneratorDSL.g:50:9: 'without'
+            {
+            match("without"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:51:7: ( 'Test' )
+            // InternalTestgeneratorDSL.g:51:9: 'Test'
+            {
+            match("Test"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:52:7: ( 'priority' )
+            // InternalTestgeneratorDSL.g:52:9: 'priority'
+            {
+            match("priority"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:53:7: ( 'mocks' )
+            // InternalTestgeneratorDSL.g:53:9: 'mocks'
+            {
+            match("mocks"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:54:7: ( 'variables' )
+            // InternalTestgeneratorDSL.g:54:9: 'variables'
+            {
+            match("variables"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:55:7: ( 'check' )
+            // InternalTestgeneratorDSL.g:55:9: 'check'
+            {
+            match("check"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:56:7: ( '=' )
+            // InternalTestgeneratorDSL.g:56:9: '='
+            {
+            match('='); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__61"
+
+    // $ANTLR start "T__62"
+    public final void mT__62() throws RecognitionException {
+        try {
+            int _type = T__62;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:57:7: ( '==' )
+            // InternalTestgeneratorDSL.g:57:9: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__62"
+
+    // $ANTLR start "T__63"
+    public final void mT__63() throws RecognitionException {
+        try {
+            int _type = T__63;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:58:7: ( '!=' )
+            // InternalTestgeneratorDSL.g:58:9: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:59:7: ( 'ExternalServiceMock' )
+            // InternalTestgeneratorDSL.g:59:9: 'ExternalServiceMock'
+            {
+            match("ExternalServiceMock"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:60:7: ( 'topic' )
+            // InternalTestgeneratorDSL.g:60:9: 'topic'
+            {
+            match("topic"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:61:7: ( 'DelegateMock' )
+            // InternalTestgeneratorDSL.g:61:9: 'DelegateMock'
+            {
+            match("DelegateMock"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:62:7: ( 'rule' )
+            // InternalTestgeneratorDSL.g:62:9: 'rule'
+            {
+            match("rule"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:63:7: ( 'if' )
+            // InternalTestgeneratorDSL.g:63:9: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:64:7: ( 'set' )
+            // InternalTestgeneratorDSL.g:64:9: 'set'
+            {
+            match("set"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:65:7: ( 'manual' )
+            // InternalTestgeneratorDSL.g:65:9: 'manual'
+            {
+            match("manual"); 
+
+
+            }
+
+            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;
+            // InternalTestgeneratorDSL.g:66:7: ( 'setter' )
+            // InternalTestgeneratorDSL.g:66:9: 'setter'
+            {
+            match("setter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__71"
+
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:67:7: ( 'true' )
+            // InternalTestgeneratorDSL.g:67:9: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:68:7: ( 'false' )
+            // InternalTestgeneratorDSL.g:68:9: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:69:7: ( '<' )
+            // InternalTestgeneratorDSL.g:69:9: '<'
+            {
+            match('<'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:70:7: ( '>' )
+            // InternalTestgeneratorDSL.g:70:9: '>'
+            {
+            match('>'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:71:7: ( '<=' )
+            // InternalTestgeneratorDSL.g:71:9: '<='
+            {
+            match("<="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:72:7: ( '>=' )
+            // InternalTestgeneratorDSL.g:72:9: '>='
+            {
+            match(">="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
+    // $ANTLR start "RULE_LIST_OPEN"
+    public final void mRULE_LIST_OPEN() throws RecognitionException {
+        try {
+            int _type = RULE_LIST_OPEN;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:4438:16: ( '[' )
+            // InternalTestgeneratorDSL.g:4438:18: '['
+            {
+            match('['); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_LIST_OPEN"
+
+    // $ANTLR start "RULE_LIST_CLOSED"
+    public final void mRULE_LIST_CLOSED() throws RecognitionException {
+        try {
+            int _type = RULE_LIST_CLOSED;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:4440:18: ( ']' )
+            // InternalTestgeneratorDSL.g:4440:20: ']'
+            {
+            match(']'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_LIST_CLOSED"
+
+    // $ANTLR start "RULE_ASSOCIATION"
+    public final void mRULE_ASSOCIATION() throws RecognitionException {
+        try {
+            int _type = RULE_ASSOCIATION;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:4442:18: ( ':' )
+            // InternalTestgeneratorDSL.g:4442:20: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ASSOCIATION"
+
+    // $ANTLR start "RULE_SEPARATOR"
+    public final void mRULE_SEPARATOR() throws RecognitionException {
+        try {
+            int _type = RULE_SEPARATOR;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:4444:16: ( ',' )
+            // InternalTestgeneratorDSL.g:4444:18: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_SEPARATOR"
+
+    // $ANTLR start "RULE_DECLARATION_FINISHED"
+    public final void mRULE_DECLARATION_FINISHED() throws RecognitionException {
+        try {
+            int _type = RULE_DECLARATION_FINISHED;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:4446:27: ( ';' )
+            // InternalTestgeneratorDSL.g:4446:29: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_DECLARATION_FINISHED"
+
+    // $ANTLR start "RULE_ID"
+    public final void mRULE_ID() throws RecognitionException {
+        try {
+            int _type = RULE_ID;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalTestgeneratorDSL.g:4448:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '-' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '-' )* )
+            // InternalTestgeneratorDSL.g:4448:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '-' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '-' )*
+            {
+            // InternalTestgeneratorDSL.g:4448:11: ( '^' )?
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='^') ) {
+                alt1=1;
+            }
+            switch (alt1) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:4448:11: '^'
+                    {
+                    match('^'); 
+
+                    }
+                    break;
+
+            }
+
+            if ( input.LA(1)=='-'||(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;}
+
+            // InternalTestgeneratorDSL.g:4448:44: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '-' )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0=='-'||(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 :
+            	    // InternalTestgeneratorDSL.g:
+            	    {
+            	    if ( input.LA(1)=='-'||(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;
+            // InternalTestgeneratorDSL.g:4450:10: ( ( '0' .. '9' )+ )
+            // InternalTestgeneratorDSL.g:4450:12: ( '0' .. '9' )+
+            {
+            // InternalTestgeneratorDSL.g:4450: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 :
+            	    // InternalTestgeneratorDSL.g:4450: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;
+            // InternalTestgeneratorDSL.g:4452:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // InternalTestgeneratorDSL.g:4452:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            {
+            // InternalTestgeneratorDSL.g:4452:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            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 :
+                    // InternalTestgeneratorDSL.g:4452:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    {
+                    match('\"'); 
+                    // InternalTestgeneratorDSL.g:4452:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    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 :
+                    	    // InternalTestgeneratorDSL.g:4452:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalTestgeneratorDSL.g:4452:28: ~ ( ( '\\\\' | '\"' ) )
+                    	    {
+                    	    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 :
+                    // InternalTestgeneratorDSL.g:4452:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    {
+                    match('\''); 
+                    // InternalTestgeneratorDSL.g:4452:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    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 :
+                    	    // InternalTestgeneratorDSL.g:4452:54: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // InternalTestgeneratorDSL.g:4452:61: ~ ( ( '\\\\' | '\\'' ) )
+                    	    {
+                    	    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;
+            // InternalTestgeneratorDSL.g:4454:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalTestgeneratorDSL.g:4454:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // InternalTestgeneratorDSL.g:4454: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 :
+            	    // InternalTestgeneratorDSL.g:4454: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;
+            // InternalTestgeneratorDSL.g:4456:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalTestgeneratorDSL.g:4456:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // InternalTestgeneratorDSL.g:4456: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 :
+            	    // InternalTestgeneratorDSL.g:4456: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);
+
+            // InternalTestgeneratorDSL.g:4456: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 :
+                    // InternalTestgeneratorDSL.g:4456:41: ( '\\r' )? '\\n'
+                    {
+                    // InternalTestgeneratorDSL.g:4456:41: ( '\\r' )?
+                    int alt9=2;
+                    int LA9_0 = input.LA(1);
+
+                    if ( (LA9_0=='\r') ) {
+                        alt9=1;
+                    }
+                    switch (alt9) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:4456: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;
+            // InternalTestgeneratorDSL.g:4458:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalTestgeneratorDSL.g:4458:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // InternalTestgeneratorDSL.g:4458: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 :
+            	    // InternalTestgeneratorDSL.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;
+            // InternalTestgeneratorDSL.g:4460:16: ( . )
+            // InternalTestgeneratorDSL.g:4460:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // InternalTestgeneratorDSL.g:1:8: ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | RULE_LIST_OPEN | RULE_LIST_CLOSED | RULE_ASSOCIATION | RULE_SEPARATOR | RULE_DECLARATION_FINISHED | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt12=74;
+        alt12 = dfa12.predict(input);
+        switch (alt12) {
+            case 1 :
+                // InternalTestgeneratorDSL.g:1:10: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 2 :
+                // InternalTestgeneratorDSL.g:1:16: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 3 :
+                // InternalTestgeneratorDSL.g:1:22: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 4 :
+                // InternalTestgeneratorDSL.g:1:28: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 5 :
+                // InternalTestgeneratorDSL.g:1:34: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 6 :
+                // InternalTestgeneratorDSL.g:1:40: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 7 :
+                // InternalTestgeneratorDSL.g:1:46: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 8 :
+                // InternalTestgeneratorDSL.g:1:52: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 9 :
+                // InternalTestgeneratorDSL.g:1:58: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 10 :
+                // InternalTestgeneratorDSL.g:1:64: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 11 :
+                // InternalTestgeneratorDSL.g:1:70: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 12 :
+                // InternalTestgeneratorDSL.g:1:76: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 13 :
+                // InternalTestgeneratorDSL.g:1:82: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 14 :
+                // InternalTestgeneratorDSL.g:1:88: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 15 :
+                // InternalTestgeneratorDSL.g:1:94: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 16 :
+                // InternalTestgeneratorDSL.g:1:100: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 17 :
+                // InternalTestgeneratorDSL.g:1:106: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 18 :
+                // InternalTestgeneratorDSL.g:1:112: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 19 :
+                // InternalTestgeneratorDSL.g:1:118: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 20 :
+                // InternalTestgeneratorDSL.g:1:124: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 21 :
+                // InternalTestgeneratorDSL.g:1:130: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 22 :
+                // InternalTestgeneratorDSL.g:1:136: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 23 :
+                // InternalTestgeneratorDSL.g:1:142: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 24 :
+                // InternalTestgeneratorDSL.g:1:148: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 25 :
+                // InternalTestgeneratorDSL.g:1:154: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 26 :
+                // InternalTestgeneratorDSL.g:1:160: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 27 :
+                // InternalTestgeneratorDSL.g:1:166: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 28 :
+                // InternalTestgeneratorDSL.g:1:172: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 29 :
+                // InternalTestgeneratorDSL.g:1:178: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 30 :
+                // InternalTestgeneratorDSL.g:1:184: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 31 :
+                // InternalTestgeneratorDSL.g:1:190: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 32 :
+                // InternalTestgeneratorDSL.g:1:196: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 33 :
+                // InternalTestgeneratorDSL.g:1:202: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 34 :
+                // InternalTestgeneratorDSL.g:1:208: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 35 :
+                // InternalTestgeneratorDSL.g:1:214: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 36 :
+                // InternalTestgeneratorDSL.g:1:220: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 37 :
+                // InternalTestgeneratorDSL.g:1:226: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 38 :
+                // InternalTestgeneratorDSL.g:1:232: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 39 :
+                // InternalTestgeneratorDSL.g:1:238: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 40 :
+                // InternalTestgeneratorDSL.g:1:244: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 41 :
+                // InternalTestgeneratorDSL.g:1:250: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 42 :
+                // InternalTestgeneratorDSL.g:1:256: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 43 :
+                // InternalTestgeneratorDSL.g:1:262: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 44 :
+                // InternalTestgeneratorDSL.g:1:268: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 45 :
+                // InternalTestgeneratorDSL.g:1:274: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 46 :
+                // InternalTestgeneratorDSL.g:1:280: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 47 :
+                // InternalTestgeneratorDSL.g:1:286: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 48 :
+                // InternalTestgeneratorDSL.g:1:292: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 49 :
+                // InternalTestgeneratorDSL.g:1:298: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 50 :
+                // InternalTestgeneratorDSL.g:1:304: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 51 :
+                // InternalTestgeneratorDSL.g:1:310: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 52 :
+                // InternalTestgeneratorDSL.g:1:316: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 53 :
+                // InternalTestgeneratorDSL.g:1:322: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 54 :
+                // InternalTestgeneratorDSL.g:1:328: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 55 :
+                // InternalTestgeneratorDSL.g:1:334: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 56 :
+                // InternalTestgeneratorDSL.g:1:340: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 57 :
+                // InternalTestgeneratorDSL.g:1:346: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 58 :
+                // InternalTestgeneratorDSL.g:1:352: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 59 :
+                // InternalTestgeneratorDSL.g:1:358: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 60 :
+                // InternalTestgeneratorDSL.g:1:364: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 61 :
+                // InternalTestgeneratorDSL.g:1:370: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 62 :
+                // InternalTestgeneratorDSL.g:1:376: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 63 :
+                // InternalTestgeneratorDSL.g:1:382: RULE_LIST_OPEN
+                {
+                mRULE_LIST_OPEN(); 
+
+                }
+                break;
+            case 64 :
+                // InternalTestgeneratorDSL.g:1:397: RULE_LIST_CLOSED
+                {
+                mRULE_LIST_CLOSED(); 
+
+                }
+                break;
+            case 65 :
+                // InternalTestgeneratorDSL.g:1:414: RULE_ASSOCIATION
+                {
+                mRULE_ASSOCIATION(); 
+
+                }
+                break;
+            case 66 :
+                // InternalTestgeneratorDSL.g:1:431: RULE_SEPARATOR
+                {
+                mRULE_SEPARATOR(); 
+
+                }
+                break;
+            case 67 :
+                // InternalTestgeneratorDSL.g:1:446: RULE_DECLARATION_FINISHED
+                {
+                mRULE_DECLARATION_FINISHED(); 
+
+                }
+                break;
+            case 68 :
+                // InternalTestgeneratorDSL.g:1:472: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 69 :
+                // InternalTestgeneratorDSL.g:1:480: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 70 :
+                // InternalTestgeneratorDSL.g:1:489: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 71 :
+                // InternalTestgeneratorDSL.g:1:501: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 72 :
+                // InternalTestgeneratorDSL.g:1:517: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 73 :
+                // InternalTestgeneratorDSL.g:1:533: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 74 :
+                // InternalTestgeneratorDSL.g:1:541: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String DFA12_eotS =
+        "\1\uffff\30\57\1\130\1\53\2\57\1\135\1\137\5\uffff\1\53\2\uffff\3\53\2\uffff\3\57\1\uffff\5\57\1\162\14\57\1\u0082\24\57\3\uffff\2\57\16\uffff\10\57\1\uffff\1\u00a4\1\u00a5\15\57\1\uffff\5\57\1\u00b8\7\57\1\u00c1\1\57\1\u00c3\14\57\1\u00d1\2\57\1\u00d4\1\u00d5\2\uffff\4\57\1\u00da\1\57\1\u00dd\13\57\1\uffff\5\57\1\u00ee\2\57\1\uffff\1\57\1\uffff\3\57\1\u00f5\4\57\1\u00fa\4\57\1\uffff\1\57\1\u0100\2\uffff\4\57\1\uffff\2\57\1\uffff\20\57\1\uffff\3\57\1\u011b\1\57\1\u011d\1\uffff\1\u011e\3\57\1\uffff\5\57\1\uffff\7\57\1\u012e\4\57\1\u0133\10\57\1\u013c\1\57\1\u013e\1\u013f\1\57\1\uffff\1\57\2\uffff\1\u0142\4\57\1\u0147\1\u0148\10\57\1\uffff\4\57\1\uffff\5\57\1\u015a\2\57\1\uffff\1\u015d\2\uffff\1\u015e\1\57\1\uffff\4\57\2\uffff\1\57\1\u0165\1\u0166\1\u0167\1\57\1\u0169\6\57\1\u0170\1\57\1\u0173\2\57\1\uffff\1\57\1\u0177\2\uffff\6\57\3\uffff\1\57\1\uffff\6\57\1\uffff\2\57\1\uffff\1\57\1\u0188\1\u0189\1\uffff\1\57\1\u018b\4\57\1\u0190\1\57\1\u0192\1\u0193\5\57\1\u0199\2\uffff\1\u019a\1\uffff\1\57\1\u019c\1\57\1\u019e\1\uffff\1\u019f\2\uffff\1\u01a0\4\57\2\uffff\1\57\1\uffff\1\57\3\uffff\1\u01a7\3\57\1\u01ab\1\57\1\uffff\1\57\1\u01ae\1\57\1\uffff\1\57\1\u01b1\1\uffff\2\57\1\uffff\1\57\1\u01b5\1\57\1\uffff\2\57\1\u01b9\1\uffff";
+    static final String DFA12_eofS =
+        "\u01ba\uffff";
+    static final String DFA12_minS =
+        "\1\0\1\120\1\151\1\145\1\160\2\145\2\154\1\143\1\146\1\156\1\163\4\141\1\156\1\157\1\145\1\141\1\150\1\145\2\141\2\75\1\145\1\165\2\75\5\uffff\1\55\2\uffff\2\0\1\52\2\uffff\1\115\1\163\1\157\1\uffff\1\164\1\163\1\160\1\165\1\155\1\55\1\171\1\156\1\154\1\142\1\160\1\144\1\145\1\157\1\141\1\162\1\161\1\160\1\55\1\144\1\164\1\145\1\156\1\162\1\164\1\151\1\163\1\164\1\157\1\141\1\164\2\154\1\155\1\145\1\163\1\143\1\156\1\162\3\uffff\2\154\16\uffff\1\116\1\151\1\154\1\150\1\164\1\151\1\145\1\156\1\uffff\2\55\3\145\1\162\1\163\1\155\1\167\1\162\2\151\1\166\2\165\1\uffff\1\105\1\145\1\162\1\165\1\144\1\55\1\145\1\160\1\157\1\163\1\145\1\160\1\162\1\55\1\154\1\55\1\163\1\160\1\143\1\164\1\153\1\165\1\151\2\145\1\104\1\156\1\145\1\55\1\160\1\143\2\55\2\uffff\1\147\1\144\1\162\1\145\1\55\1\145\1\55\1\164\1\156\1\160\1\151\1\145\1\164\1\166\1\162\1\124\1\141\1\143\1\uffff\1\167\1\157\1\162\1\145\1\147\1\55\1\164\1\145\1\uffff\1\157\1\uffff\1\145\1\154\1\153\1\55\1\163\2\141\1\147\1\55\1\151\1\145\1\141\1\165\1\uffff\1\141\1\55\2\uffff\1\141\1\144\1\156\1\163\1\uffff\1\156\1\154\1\uffff\1\105\1\147\1\164\1\143\1\156\1\126\1\145\1\156\1\141\1\154\1\157\1\141\1\163\1\151\1\144\1\145\1\uffff\1\163\1\162\1\167\1\55\1\145\1\55\1\uffff\1\55\1\154\1\142\1\141\1\uffff\1\141\1\163\1\156\1\164\1\143\1\uffff\1\164\1\145\1\141\1\163\1\164\1\145\1\166\1\55\1\124\1\145\1\143\1\141\1\55\1\156\1\141\1\163\1\124\1\144\1\171\1\141\1\164\1\55\1\162\2\55\1\163\1\uffff\1\170\2\uffff\1\55\1\154\1\164\1\147\1\163\2\55\1\153\1\145\1\144\1\154\1\151\1\163\1\155\1\145\1\uffff\1\141\1\124\1\145\1\162\1\uffff\1\164\1\154\1\153\1\141\1\145\1\55\1\154\1\171\1\uffff\1\55\2\uffff\1\55\1\151\1\uffff\2\145\1\162\1\122\2\uffff\1\141\3\55\1\157\1\55\1\145\1\156\1\163\1\141\1\106\1\151\1\55\1\123\1\55\1\163\1\144\1\uffff\1\163\1\55\2\uffff\1\164\1\163\1\115\1\141\1\165\1\147\3\uffff\1\156\1\uffff\1\156\1\164\1\153\1\163\1\154\1\141\1\uffff\1\157\1\145\1\uffff\1\153\2\55\1\uffff\1\171\1\55\1\157\1\155\1\154\1\145\1\55\1\164\2\55\1\153\1\157\1\142\1\160\1\162\1\55\2\uffff\1\55\1\uffff\1\143\1\55\1\145\1\55\1\uffff\1\55\2\uffff\1\55\1\167\1\154\1\151\1\166\2\uffff\1\153\1\uffff\1\124\3\uffff\1\55\1\145\1\143\1\151\1\55\1\141\1\uffff\1\163\1\55\1\143\1\uffff\1\163\1\55\1\uffff\1\145\1\153\1\uffff\1\115\1\55\1\157\1\uffff\1\143\1\153\1\55\1\uffff";
+    static final String DFA12_maxS =
+        "\1\uffff\1\165\1\151\1\162\1\171\1\145\1\155\1\170\1\154\1\164\1\156\1\170\1\163\3\141\1\162\1\156\1\157\1\164\2\157\1\145\1\157\1\141\2\75\1\145\1\165\2\75\5\uffff\1\172\2\uffff\2\uffff\1\57\2\uffff\1\115\1\163\1\157\1\uffff\1\164\1\163\1\160\1\165\1\155\1\172\1\171\1\156\1\154\1\142\1\164\1\144\1\145\1\157\3\162\1\160\1\172\1\144\1\164\1\145\1\156\1\163\1\164\1\157\1\163\1\164\1\157\1\141\1\164\1\162\1\154\1\155\1\145\1\163\1\143\1\156\1\162\3\uffff\2\154\16\uffff\1\116\1\151\1\154\1\150\1\164\1\151\1\145\1\156\1\uffff\2\172\3\145\1\162\1\163\1\155\1\167\1\162\2\151\1\166\2\165\1\uffff\1\105\1\145\1\162\1\165\1\144\1\172\1\145\1\160\1\157\1\163\1\145\1\160\1\162\1\172\1\154\1\172\1\163\1\160\1\143\1\164\1\153\1\165\1\151\2\145\1\104\1\156\1\145\1\172\1\160\1\143\2\172\2\uffff\1\147\1\144\1\162\1\145\1\172\1\145\1\172\1\164\1\156\1\160\1\151\1\145\1\164\1\166\1\162\1\124\1\141\1\143\1\uffff\1\167\1\157\1\162\1\145\1\147\1\172\1\164\1\145\1\uffff\1\157\1\uffff\1\145\1\154\1\153\1\172\1\163\2\141\1\147\1\172\1\151\1\145\1\141\1\165\1\uffff\1\141\1\172\2\uffff\1\141\1\144\1\156\1\163\1\uffff\1\156\1\154\1\uffff\1\105\1\147\1\164\1\143\1\156\1\163\1\145\1\156\1\141\1\154\1\157\1\141\1\163\1\151\1\144\1\145\1\uffff\1\163\1\162\1\167\1\172\1\145\1\172\1\uffff\1\172\1\154\1\142\1\141\1\uffff\1\141\1\163\1\156\1\164\1\143\1\uffff\1\164\1\145\1\141\1\163\1\164\1\145\1\166\1\172\1\124\1\145\1\143\1\141\1\172\1\156\1\141\1\163\1\124\1\144\1\171\1\141\1\164\1\172\1\162\2\172\1\163\1\uffff\1\170\2\uffff\1\172\1\154\1\164\1\147\1\163\2\172\1\153\1\145\1\144\1\154\1\151\1\163\1\155\1\145\1\uffff\1\141\1\124\1\145\1\162\1\uffff\1\164\1\154\1\153\1\141\1\145\1\172\1\154\1\171\1\uffff\1\172\2\uffff\1\172\1\151\1\uffff\2\145\1\162\1\122\2\uffff\1\141\3\172\1\157\1\172\1\145\1\156\1\163\1\141\1\106\1\151\1\172\1\124\1\172\1\163\1\144\1\uffff\1\163\1\172\2\uffff\1\164\1\163\1\115\1\141\1\165\1\147\3\uffff\1\156\1\uffff\1\156\1\164\1\153\1\163\1\154\1\141\1\uffff\1\157\1\145\1\uffff\1\153\2\172\1\uffff\1\171\1\172\1\157\1\155\1\154\1\145\1\172\1\164\2\172\1\153\1\157\1\142\1\160\1\162\1\172\2\uffff\1\172\1\uffff\1\143\1\172\1\145\1\172\1\uffff\1\172\2\uffff\1\172\1\167\1\154\1\151\1\166\2\uffff\1\153\1\uffff\1\124\3\uffff\1\172\1\145\1\143\1\151\1\172\1\141\1\uffff\1\163\1\172\1\143\1\uffff\1\163\1\172\1\uffff\1\145\1\153\1\uffff\1\115\1\172\1\157\1\uffff\1\143\1\153\1\172\1\uffff";
+    static final String DFA12_acceptS =
+        "\37\uffff\1\77\1\100\1\101\1\102\1\103\1\uffff\1\104\1\105\3\uffff\1\111\1\112\3\uffff\1\104\47\uffff\1\57\1\56\1\60\2\uffff\1\75\1\73\1\76\1\74\1\77\1\100\1\101\1\102\1\103\1\105\1\106\1\107\1\110\1\111\10\uffff\1\40\17\uffff\1\65\41\uffff\1\5\1\6\22\uffff\1\42\10\uffff\1\66\1\uffff\1\46\15\uffff\1\2\2\uffff\1\71\1\4\4\uffff\1\41\2\uffff\1\45\20\uffff\1\35\6\uffff\1\51\4\uffff\1\64\5\uffff\1\62\32\uffff\1\72\1\uffff\1\55\1\53\17\uffff\1\31\4\uffff\1\23\10\uffff\1\44\1\uffff\1\36\1\70\2\uffff\1\67\4\uffff\1\34\1\50\21\uffff\1\25\2\uffff\1\33\1\37\6\uffff\1\20\1\7\1\21\1\uffff\1\47\6\uffff\1\13\2\uffff\1\14\3\uffff\1\52\20\uffff\1\22\1\32\1\uffff\1\54\4\uffff\1\27\1\uffff\1\11\1\16\5\uffff\1\15\1\43\1\uffff\1\1\1\uffff\1\3\1\10\1\17\6\uffff\1\26\3\uffff\1\63\2\uffff\1\30\2\uffff\1\12\3\uffff\1\24\3\uffff\1\61";
+    static final String DFA12_specialS =
+        "\1\2\46\uffff\1\0\1\1\u0191\uffff}>";
+    static final String[] DFA12_transitionS = {
+            "\11\53\2\52\2\53\1\52\22\53\1\52\1\32\1\47\4\53\1\50\4\53\1\42\1\45\1\53\1\51\12\46\1\41\1\43\1\35\1\31\1\36\2\53\1\45\1\1\1\45\1\33\1\13\1\10\1\17\1\45\1\21\2\45\1\22\1\15\5\45\1\11\1\26\1\14\5\45\1\37\1\53\1\40\1\44\1\45\1\53\1\45\1\4\1\25\1\6\1\7\1\24\1\45\1\16\1\12\1\45\1\5\1\45\1\27\2\45\1\20\1\45\1\34\1\23\1\3\1\45\1\30\1\2\3\45\uff85\53",
+            "\1\54\36\uffff\1\56\5\uffff\1\55",
+            "\1\60",
+            "\1\61\11\uffff\1\62\2\uffff\1\63",
+            "\1\64\10\uffff\1\65",
+            "\1\66",
+            "\1\70\7\uffff\1\67",
+            "\1\74\1\71\1\73\11\uffff\1\72",
+            "\1\75",
+            "\1\77\1\uffff\1\100\16\uffff\1\76",
+            "\1\102\7\uffff\1\101",
+            "\1\103\11\uffff\1\104",
+            "\1\105",
+            "\1\106",
+            "\1\107",
+            "\1\110",
+            "\1\112\20\uffff\1\111",
+            "\1\113",
+            "\1\114",
+            "\1\116\16\uffff\1\115",
+            "\1\120\15\uffff\1\117",
+            "\1\122\6\uffff\1\121",
+            "\1\123",
+            "\1\125\15\uffff\1\124",
+            "\1\126",
+            "\1\127",
+            "\1\131",
+            "\1\132",
+            "\1\133",
+            "\1\134",
+            "\1\136",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\57\23\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\0\146",
+            "\0\146",
+            "\1\147\4\uffff\1\150",
+            "",
+            "",
+            "\1\152",
+            "\1\153",
+            "\1\154",
+            "",
+            "\1\155",
+            "\1\156",
+            "\1\157",
+            "\1\160",
+            "\1\161",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\163",
+            "\1\164",
+            "\1\165",
+            "\1\166",
+            "\1\170\3\uffff\1\167",
+            "\1\171",
+            "\1\172",
+            "\1\173",
+            "\1\174\20\uffff\1\175",
+            "\1\176",
+            "\1\u0080\1\177",
+            "\1\u0081",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0083",
+            "\1\u0084",
+            "\1\u0085",
+            "\1\u0086",
+            "\1\u0087\1\u0088",
+            "\1\u0089",
+            "\1\u008b\5\uffff\1\u008a",
+            "\1\u008c",
+            "\1\u008d",
+            "\1\u008e",
+            "\1\u008f",
+            "\1\u0090",
+            "\1\u0091\5\uffff\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\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\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\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\u00bf",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\23\57\1\u00c0\6\57",
+            "\1\u00c2",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\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\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\16\57\1\u00d0\13\57",
+            "\1\u00d2",
+            "\1\u00d3",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00db",
+            "\1\57\2\uffff\12\57\7\uffff\4\57\1\u00dc\25\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\1\u00e8",
+            "",
+            "\1\u00e9",
+            "\1\u00ea",
+            "\1\u00eb",
+            "\1\u00ec",
+            "\1\u00ed",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00ef",
+            "\1\u00f0",
+            "",
+            "\1\u00f1",
+            "",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00f6",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe",
+            "",
+            "\1\u00ff",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "",
+            "\1\u0105",
+            "\1\u0106",
+            "",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "\1\u010c\34\uffff\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",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u011c",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u011f",
+            "\1\u0120",
+            "\1\u0121",
+            "",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "\1\u012d",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0134",
+            "\1\u0135",
+            "\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u013d",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0140",
+            "",
+            "\1\u0141",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0143",
+            "\1\u0144",
+            "\1\u0145",
+            "\1\u0146",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0149",
+            "\1\u014a",
+            "\1\u014b",
+            "\1\u014c",
+            "\1\u014d",
+            "\1\u014e",
+            "\1\u014f",
+            "\1\u0150",
+            "",
+            "\1\u0151",
+            "\1\u0152",
+            "\1\u0153",
+            "\1\u0154",
+            "",
+            "\1\u0155",
+            "\1\u0156",
+            "\1\u0157",
+            "\1\u0158",
+            "\1\u0159",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u015b",
+            "\1\u015c",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u015f",
+            "",
+            "\1\u0160",
+            "\1\u0161",
+            "\1\u0162",
+            "\1\u0163",
+            "",
+            "",
+            "\1\u0164",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0168",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u016a",
+            "\1\u016b",
+            "\1\u016c",
+            "\1\u016d",
+            "\1\u016e",
+            "\1\u016f",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0172\1\u0171",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0174",
+            "\1\u0175",
+            "",
+            "\1\u0176",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\u0178",
+            "\1\u0179",
+            "\1\u017a",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\u017d",
+            "",
+            "",
+            "",
+            "\1\u017e",
+            "",
+            "\1\u017f",
+            "\1\u0180",
+            "\1\u0181",
+            "\1\u0182",
+            "\1\u0183",
+            "\1\u0184",
+            "",
+            "\1\u0185",
+            "\1\u0186",
+            "",
+            "\1\u0187",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\u018a",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u018c",
+            "\1\u018d",
+            "\1\u018e",
+            "\1\u018f",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0191",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u0194",
+            "\1\u0195",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\u019b",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u019d",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\u01a4",
+            "",
+            "",
+            "\1\u01a5",
+            "",
+            "\1\u01a6",
+            "",
+            "",
+            "",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01a8",
+            "\1\u01a9",
+            "\1\u01aa",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01ac",
+            "",
+            "\1\u01ad",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01af",
+            "",
+            "\1\u01b0",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "",
+            "\1\u01b2",
+            "\1\u01b3",
+            "",
+            "\1\u01b4",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            "\1\u01b6",
+            "",
+            "\1\u01b7",
+            "\1\u01b8",
+            "\1\57\2\uffff\12\57\7\uffff\32\57\4\uffff\1\57\1\uffff\32\57",
+            ""
+    };
+
+    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+    static final short[][] DFA12_transition;
+
+    static {
+        int numStates = DFA12_transitionS.length;
+        DFA12_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+        }
+    }
+
+    class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = DFA12_eot;
+            this.eof = DFA12_eof;
+            this.min = DFA12_min;
+            this.max = DFA12_max;
+            this.accept = DFA12_accept;
+            this.special = DFA12_special;
+            this.transition = DFA12_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | RULE_LIST_OPEN | RULE_LIST_CLOSED | RULE_ASSOCIATION | RULE_SEPARATOR | RULE_DECLARATION_FINISHED | 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_39 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_39>='\u0000' && LA12_39<='\uFFFF')) ) {s = 102;}
+
+                        else s = 43;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA12_40 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA12_40>='\u0000' && LA12_40<='\uFFFF')) ) {s = 102;}
+
+                        else s = 43;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA12_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA12_0=='B') ) {s = 1;}
+
+                        else if ( (LA12_0=='w') ) {s = 2;}
+
+                        else if ( (LA12_0=='t') ) {s = 3;}
+
+                        else if ( (LA12_0=='b') ) {s = 4;}
+
+                        else if ( (LA12_0=='k') ) {s = 5;}
+
+                        else if ( (LA12_0=='d') ) {s = 6;}
+
+                        else if ( (LA12_0=='e') ) {s = 7;}
+
+                        else if ( (LA12_0=='F') ) {s = 8;}
+
+                        else if ( (LA12_0=='S') ) {s = 9;}
+
+                        else if ( (LA12_0=='i') ) {s = 10;}
+
+                        else if ( (LA12_0=='E') ) {s = 11;}
+
+                        else if ( (LA12_0=='U') ) {s = 12;}
+
+                        else if ( (LA12_0=='M') ) {s = 13;}
+
+                        else if ( (LA12_0=='h') ) {s = 14;}
+
+                        else if ( (LA12_0=='G') ) {s = 15;}
+
+                        else if ( (LA12_0=='p') ) {s = 16;}
+
+                        else if ( (LA12_0=='I') ) {s = 17;}
+
+                        else if ( (LA12_0=='L') ) {s = 18;}
+
+                        else if ( (LA12_0=='s') ) {s = 19;}
+
+                        else if ( (LA12_0=='f') ) {s = 20;}
+
+                        else if ( (LA12_0=='c') ) {s = 21;}
+
+                        else if ( (LA12_0=='T') ) {s = 22;}
+
+                        else if ( (LA12_0=='m') ) {s = 23;}
+
+                        else if ( (LA12_0=='v') ) {s = 24;}
+
+                        else if ( (LA12_0=='=') ) {s = 25;}
+
+                        else if ( (LA12_0=='!') ) {s = 26;}
+
+                        else if ( (LA12_0=='D') ) {s = 27;}
+
+                        else if ( (LA12_0=='r') ) {s = 28;}
+
+                        else if ( (LA12_0=='<') ) {s = 29;}
+
+                        else if ( (LA12_0=='>') ) {s = 30;}
+
+                        else if ( (LA12_0=='[') ) {s = 31;}
+
+                        else if ( (LA12_0==']') ) {s = 32;}
+
+                        else if ( (LA12_0==':') ) {s = 33;}
+
+                        else if ( (LA12_0==',') ) {s = 34;}
+
+                        else if ( (LA12_0==';') ) {s = 35;}
+
+                        else if ( (LA12_0=='^') ) {s = 36;}
+
+                        else if ( (LA12_0=='-'||LA12_0=='A'||LA12_0=='C'||LA12_0=='H'||(LA12_0>='J' && LA12_0<='K')||(LA12_0>='N' && LA12_0<='R')||(LA12_0>='V' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='a'||LA12_0=='g'||LA12_0=='j'||LA12_0=='l'||(LA12_0>='n' && LA12_0<='o')||LA12_0=='q'||LA12_0=='u'||(LA12_0>='x' && LA12_0<='z')) ) {s = 37;}
+
+                        else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 38;}
+
+                        else if ( (LA12_0=='\"') ) {s = 39;}
+
+                        else if ( (LA12_0=='\'') ) {s = 40;}
+
+                        else if ( (LA12_0=='/') ) {s = 41;}
+
+                        else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 42;}
+
+                        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<='\uFFFF')) ) {s = 43;}
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 12, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+=======
 package de.fhmuenster.masterthesis.parser.antlr.internal;
 
 // Hack: Use our own Lexer superclass by means of import. 
@@ -3149,4 +6295,5 @@ public class InternalTestgeneratorDSLLexer extends Lexer {
     }
  
 
+>>>>>>> master
 }
\ No newline at end of file
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSLParser.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSLParser.java
index 687c703d76f0ec6617f1914340f300d619d5389d..f66a7b8fa219a96576d3f6ceb3c4fa575b62ca5e 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSLParser.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/parser/antlr/internal/InternalTestgeneratorDSLParser.java
@@ -1,3 +1,11020 @@
+<<<<<<< HEAD
+package de.fhmuenster.masterthesis.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalTestgeneratorDSLParser extends AbstractInternalAntlrParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_ASSOCIATION", "RULE_LIST_OPEN", "RULE_SEPARATOR", "RULE_LIST_CLOSED", "RULE_DECLARATION_FINISHED", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'BPMNDiagram'", "'with'", "'testpackage'", "'bpmn'", "'key'", "'dmn'", "'embedded'", "'FlowElement'", "'StartEvent'", "'inputVariables'", "'EndEvent'", "'UserTask'", "'ManualTask'", "'ScriptTask'", "'ServiceTask'", "'delegate'", "'external'", "'hardcoded'", "'inputs'", "'BusinessRuleTask'", "'Gateway'", "'SequenceFlow'", "'expression'", "'ExternalTopic'", "'String'", "'proposals'", "'Integer'", "'Boolean'", "'Loop'", "'starts'", "'follows'", "'by'", "'ends'", "'has'", "'complexity'", "'passed'", "'Flow'", "'for'", "'elements'", "'without'", "'Test'", "'priority'", "'mocks'", "'variables'", "'check'", "'='", "'=='", "'!='", "'ExternalServiceMock'", "'topic'", "'DelegateMock'", "'rule'", "'if'", "'set'", "'manual'", "'setter'", "'true'", "'false'", "'<'", "'>'", "'<='", "'>='"
+    };
+    public static final int T__50=50;
+    public static final int T__19=19;
+    public static final int T__59=59;
+    public static final int T__16=16;
+    public static final int T__17=17;
+    public static final int T__18=18;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__60=60;
+    public static final int T__61=61;
+    public static final int RULE_ID=4;
+    public static final int RULE_DECLARATION_FINISHED=10;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int RULE_INT=11;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__23=23;
+    public static final int T__67=67;
+    public static final int T__24=24;
+    public static final int T__68=68;
+    public static final int T__25=25;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__20=20;
+    public static final int T__64=64;
+    public static final int T__21=21;
+    public static final int T__65=65;
+    public static final int RULE_LIST_CLOSED=9;
+    public static final int T__70=70;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SEPARATOR=8;
+    public static final int RULE_SL_COMMENT=13;
+    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 T__33=33;
+    public static final int T__77=77;
+    public static final int RULE_LIST_OPEN=7;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int RULE_ASSOCIATION=6;
+    public static final int T__36=36;
+    public static final int T__73=73;
+    public static final int EOF=-1;
+    public static final int T__30=30;
+    public static final int T__74=74;
+    public static final int T__31=31;
+    public static final int T__75=75;
+    public static final int T__32=32;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+
+    // delegates
+    // delegators
+
+
+        public InternalTestgeneratorDSLParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalTestgeneratorDSLParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalTestgeneratorDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "InternalTestgeneratorDSL.g"; }
+
+
+
+     	private TestgeneratorDSLGrammarAccess grammarAccess;
+
+        public InternalTestgeneratorDSLParser(TokenStream input, TestgeneratorDSLGrammarAccess grammarAccess) {
+            this(input);
+            this.grammarAccess = grammarAccess;
+            registerRules(grammarAccess.getGrammar());
+        }
+
+        @Override
+        protected String getFirstRuleName() {
+        	return "Model";
+       	}
+
+       	@Override
+       	protected TestgeneratorDSLGrammarAccess getGrammarAccess() {
+       		return grammarAccess;
+       	}
+
+
+
+
+    // $ANTLR start "entryRuleModel"
+    // InternalTestgeneratorDSL.g:65:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ;
+    public final EObject entryRuleModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleModel = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:65:46: (iv_ruleModel= ruleModel EOF )
+            // InternalTestgeneratorDSL.g:66:2: iv_ruleModel= ruleModel EOF
+            {
+             newCompositeNode(grammarAccess.getModelRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleModel=ruleModel();
+
+            state._fsp--;
+
+             current =iv_ruleModel; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleModel"
+
+
+    // $ANTLR start "ruleModel"
+    // InternalTestgeneratorDSL.g:72:1: ruleModel returns [EObject current=null] : ( (lv_declarations_0_0= ruleDeclaration ) )* ;
+    public final EObject ruleModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_declarations_0_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:78:2: ( ( (lv_declarations_0_0= ruleDeclaration ) )* )
+            // InternalTestgeneratorDSL.g:79:2: ( (lv_declarations_0_0= ruleDeclaration ) )*
+            {
+            // InternalTestgeneratorDSL.g:79:2: ( (lv_declarations_0_0= ruleDeclaration ) )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==16||LA1_0==23||(LA1_0>=39 && LA1_0<=40)||(LA1_0>=42 && LA1_0<=44)||LA1_0==52||LA1_0==56||LA1_0==64||LA1_0==66) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // InternalTestgeneratorDSL.g:80:3: (lv_declarations_0_0= ruleDeclaration )
+            	    {
+            	    // InternalTestgeneratorDSL.g:80:3: (lv_declarations_0_0= ruleDeclaration )
+            	    // InternalTestgeneratorDSL.g:81:4: lv_declarations_0_0= ruleDeclaration
+            	    {
+
+            	    				newCompositeNode(grammarAccess.getModelAccess().getDeclarationsDeclarationParserRuleCall_0());
+            	    			
+            	    pushFollow(FOLLOW_3);
+            	    lv_declarations_0_0=ruleDeclaration();
+
+            	    state._fsp--;
+
+
+            	    				if (current==null) {
+            	    					current = createModelElementForParent(grammarAccess.getModelRule());
+            	    				}
+            	    				add(
+            	    					current,
+            	    					"declarations",
+            	    					lv_declarations_0_0,
+            	    					"de.fhmuenster.masterthesis.TestgeneratorDSL.Declaration");
+            	    				afterParserOrEnumRuleCall();
+            	    			
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleModel"
+
+
+    // $ANTLR start "entryRuleDeclaration"
+    // InternalTestgeneratorDSL.g:101:1: entryRuleDeclaration returns [EObject current=null] : iv_ruleDeclaration= ruleDeclaration EOF ;
+    public final EObject entryRuleDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDeclaration = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:101:52: (iv_ruleDeclaration= ruleDeclaration EOF )
+            // InternalTestgeneratorDSL.g:102:2: iv_ruleDeclaration= ruleDeclaration EOF
+            {
+             newCompositeNode(grammarAccess.getDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleDeclaration=ruleDeclaration();
+
+            state._fsp--;
+
+             current =iv_ruleDeclaration; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDeclaration"
+
+
+    // $ANTLR start "ruleDeclaration"
+    // InternalTestgeneratorDSL.g:108:1: ruleDeclaration returns [EObject current=null] : (this_BPMNDiagram_0= ruleBPMNDiagram | this_FlowElement_1= ruleFlowElement | this_Variable_2= ruleVariable | this_Flow_3= ruleFlow | this_Test_4= ruleTest | this_Mock_5= ruleMock | this_ExternalTopic_6= ruleExternalTopic | this_Loop_7= ruleLoop ) ;
+    public final EObject ruleDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_BPMNDiagram_0 = null;
+
+        EObject this_FlowElement_1 = null;
+
+        EObject this_Variable_2 = null;
+
+        EObject this_Flow_3 = null;
+
+        EObject this_Test_4 = null;
+
+        EObject this_Mock_5 = null;
+
+        EObject this_ExternalTopic_6 = null;
+
+        EObject this_Loop_7 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:114:2: ( (this_BPMNDiagram_0= ruleBPMNDiagram | this_FlowElement_1= ruleFlowElement | this_Variable_2= ruleVariable | this_Flow_3= ruleFlow | this_Test_4= ruleTest | this_Mock_5= ruleMock | this_ExternalTopic_6= ruleExternalTopic | this_Loop_7= ruleLoop ) )
+            // InternalTestgeneratorDSL.g:115:2: (this_BPMNDiagram_0= ruleBPMNDiagram | this_FlowElement_1= ruleFlowElement | this_Variable_2= ruleVariable | this_Flow_3= ruleFlow | this_Test_4= ruleTest | this_Mock_5= ruleMock | this_ExternalTopic_6= ruleExternalTopic | this_Loop_7= ruleLoop )
+            {
+            // InternalTestgeneratorDSL.g:115:2: (this_BPMNDiagram_0= ruleBPMNDiagram | this_FlowElement_1= ruleFlowElement | this_Variable_2= ruleVariable | this_Flow_3= ruleFlow | this_Test_4= ruleTest | this_Mock_5= ruleMock | this_ExternalTopic_6= ruleExternalTopic | this_Loop_7= ruleLoop )
+            int alt2=8;
+            switch ( input.LA(1) ) {
+            case 16:
+                {
+                alt2=1;
+                }
+                break;
+            case 23:
+                {
+                alt2=2;
+                }
+                break;
+            case 40:
+            case 42:
+            case 43:
+                {
+                alt2=3;
+                }
+                break;
+            case 52:
+                {
+                alt2=4;
+                }
+                break;
+            case 56:
+                {
+                alt2=5;
+                }
+                break;
+            case 64:
+            case 66:
+                {
+                alt2=6;
+                }
+                break;
+            case 39:
+                {
+                alt2=7;
+                }
+                break;
+            case 44:
+                {
+                alt2=8;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 2, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt2) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:116:3: this_BPMNDiagram_0= ruleBPMNDiagram
+                    {
+
+                    			newCompositeNode(grammarAccess.getDeclarationAccess().getBPMNDiagramParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_BPMNDiagram_0=ruleBPMNDiagram();
+
+                    state._fsp--;
+
+
+                    			current = this_BPMNDiagram_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:125:3: this_FlowElement_1= ruleFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getDeclarationAccess().getFlowElementParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_FlowElement_1=ruleFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_FlowElement_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:134:3: this_Variable_2= ruleVariable
+                    {
+
+                    			newCompositeNode(grammarAccess.getDeclarationAccess().getVariableParserRuleCall_2());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_Variable_2=ruleVariable();
+
+                    state._fsp--;
+
+
+                    			current = this_Variable_2;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTestgeneratorDSL.g:143:3: this_Flow_3= ruleFlow
+                    {
+
+                    			newCompositeNode(grammarAccess.getDeclarationAccess().getFlowParserRuleCall_3());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_Flow_3=ruleFlow();
+
+                    state._fsp--;
+
+
+                    			current = this_Flow_3;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTestgeneratorDSL.g:152:3: this_Test_4= ruleTest
+                    {
+
+                    			newCompositeNode(grammarAccess.getDeclarationAccess().getTestParserRuleCall_4());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_Test_4=ruleTest();
+
+                    state._fsp--;
+
+
+                    			current = this_Test_4;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTestgeneratorDSL.g:161:3: this_Mock_5= ruleMock
+                    {
+
+                    			newCompositeNode(grammarAccess.getDeclarationAccess().getMockParserRuleCall_5());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_Mock_5=ruleMock();
+
+                    state._fsp--;
+
+
+                    			current = this_Mock_5;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTestgeneratorDSL.g:170:3: this_ExternalTopic_6= ruleExternalTopic
+                    {
+
+                    			newCompositeNode(grammarAccess.getDeclarationAccess().getExternalTopicParserRuleCall_6());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_ExternalTopic_6=ruleExternalTopic();
+
+                    state._fsp--;
+
+
+                    			current = this_ExternalTopic_6;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTestgeneratorDSL.g:179:3: this_Loop_7= ruleLoop
+                    {
+
+                    			newCompositeNode(grammarAccess.getDeclarationAccess().getLoopParserRuleCall_7());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_Loop_7=ruleLoop();
+
+                    state._fsp--;
+
+
+                    			current = this_Loop_7;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDeclaration"
+
+
+    // $ANTLR start "entryRuleBPMNDiagram"
+    // InternalTestgeneratorDSL.g:191:1: entryRuleBPMNDiagram returns [EObject current=null] : iv_ruleBPMNDiagram= ruleBPMNDiagram EOF ;
+    public final EObject entryRuleBPMNDiagram() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBPMNDiagram = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:191:52: (iv_ruleBPMNDiagram= ruleBPMNDiagram EOF )
+            // InternalTestgeneratorDSL.g:192:2: iv_ruleBPMNDiagram= ruleBPMNDiagram EOF
+            {
+             newCompositeNode(grammarAccess.getBPMNDiagramRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBPMNDiagram=ruleBPMNDiagram();
+
+            state._fsp--;
+
+             current =iv_ruleBPMNDiagram; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBPMNDiagram"
+
+
+    // $ANTLR start "ruleBPMNDiagram"
+    // InternalTestgeneratorDSL.g:198:1: ruleBPMNDiagram returns [EObject current=null] : (otherlv_0= 'BPMNDiagram' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'testpackage' ( (lv_testpackage_4_0= RULE_STRING ) ) otherlv_5= 'with' otherlv_6= 'bpmn' ( (lv_bpmn_7_0= RULE_STRING ) ) otherlv_8= 'with' otherlv_9= 'key' ( (lv_key_10_0= RULE_STRING ) ) (otherlv_11= 'with' otherlv_12= 'dmn' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? (otherlv_19= 'with' otherlv_20= 'embedded' this_ASSOCIATION_21= RULE_ASSOCIATION this_LIST_OPEN_22= RULE_LIST_OPEN ( ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_26= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_27= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleBPMNDiagram() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_testpackage_4_0=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token lv_bpmn_7_0=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token lv_key_10_0=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token this_ASSOCIATION_13=null;
+        Token this_LIST_OPEN_14=null;
+        Token lv_dmn_15_0=null;
+        Token this_SEPARATOR_16=null;
+        Token lv_dmn_17_0=null;
+        Token this_LIST_CLOSED_18=null;
+        Token otherlv_19=null;
+        Token otherlv_20=null;
+        Token this_ASSOCIATION_21=null;
+        Token this_LIST_OPEN_22=null;
+        Token lv_embedded_23_0=null;
+        Token this_SEPARATOR_24=null;
+        Token lv_embedded_25_0=null;
+        Token this_LIST_CLOSED_26=null;
+        Token this_DECLARATION_FINISHED_27=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:204:2: ( (otherlv_0= 'BPMNDiagram' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'testpackage' ( (lv_testpackage_4_0= RULE_STRING ) ) otherlv_5= 'with' otherlv_6= 'bpmn' ( (lv_bpmn_7_0= RULE_STRING ) ) otherlv_8= 'with' otherlv_9= 'key' ( (lv_key_10_0= RULE_STRING ) ) (otherlv_11= 'with' otherlv_12= 'dmn' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? (otherlv_19= 'with' otherlv_20= 'embedded' this_ASSOCIATION_21= RULE_ASSOCIATION this_LIST_OPEN_22= RULE_LIST_OPEN ( ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_26= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_27= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:205:2: (otherlv_0= 'BPMNDiagram' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'testpackage' ( (lv_testpackage_4_0= RULE_STRING ) ) otherlv_5= 'with' otherlv_6= 'bpmn' ( (lv_bpmn_7_0= RULE_STRING ) ) otherlv_8= 'with' otherlv_9= 'key' ( (lv_key_10_0= RULE_STRING ) ) (otherlv_11= 'with' otherlv_12= 'dmn' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? (otherlv_19= 'with' otherlv_20= 'embedded' this_ASSOCIATION_21= RULE_ASSOCIATION this_LIST_OPEN_22= RULE_LIST_OPEN ( ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_26= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_27= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:205:2: (otherlv_0= 'BPMNDiagram' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'testpackage' ( (lv_testpackage_4_0= RULE_STRING ) ) otherlv_5= 'with' otherlv_6= 'bpmn' ( (lv_bpmn_7_0= RULE_STRING ) ) otherlv_8= 'with' otherlv_9= 'key' ( (lv_key_10_0= RULE_STRING ) ) (otherlv_11= 'with' otherlv_12= 'dmn' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? (otherlv_19= 'with' otherlv_20= 'embedded' this_ASSOCIATION_21= RULE_ASSOCIATION this_LIST_OPEN_22= RULE_LIST_OPEN ( ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_26= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_27= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:206:3: otherlv_0= 'BPMNDiagram' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'testpackage' ( (lv_testpackage_4_0= RULE_STRING ) ) otherlv_5= 'with' otherlv_6= 'bpmn' ( (lv_bpmn_7_0= RULE_STRING ) ) otherlv_8= 'with' otherlv_9= 'key' ( (lv_key_10_0= RULE_STRING ) ) (otherlv_11= 'with' otherlv_12= 'dmn' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? (otherlv_19= 'with' otherlv_20= 'embedded' this_ASSOCIATION_21= RULE_ASSOCIATION this_LIST_OPEN_22= RULE_LIST_OPEN ( ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_26= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_27= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,16,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getBPMNDiagramAccess().getBPMNDiagramKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:210:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:211:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:211:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:212:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_5); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getBPMNDiagramAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBPMNDiagramRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,17,FOLLOW_6); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getBPMNDiagramAccess().getWithKeyword_2());
+            		
+            otherlv_3=(Token)match(input,18,FOLLOW_7); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getBPMNDiagramAccess().getTestpackageKeyword_3());
+            		
+            // InternalTestgeneratorDSL.g:236:3: ( (lv_testpackage_4_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:237:4: (lv_testpackage_4_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:237:4: (lv_testpackage_4_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:238:5: lv_testpackage_4_0= RULE_STRING
+            {
+            lv_testpackage_4_0=(Token)match(input,RULE_STRING,FOLLOW_5); 
+
+            					newLeafNode(lv_testpackage_4_0, grammarAccess.getBPMNDiagramAccess().getTestpackageSTRINGTerminalRuleCall_4_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBPMNDiagramRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"testpackage",
+            						lv_testpackage_4_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,17,FOLLOW_8); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getBPMNDiagramAccess().getWithKeyword_5());
+            		
+            otherlv_6=(Token)match(input,19,FOLLOW_7); 
+
+            			newLeafNode(otherlv_6, grammarAccess.getBPMNDiagramAccess().getBpmnKeyword_6());
+            		
+            // InternalTestgeneratorDSL.g:262:3: ( (lv_bpmn_7_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:263:4: (lv_bpmn_7_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:263:4: (lv_bpmn_7_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:264:5: lv_bpmn_7_0= RULE_STRING
+            {
+            lv_bpmn_7_0=(Token)match(input,RULE_STRING,FOLLOW_5); 
+
+            					newLeafNode(lv_bpmn_7_0, grammarAccess.getBPMNDiagramAccess().getBpmnSTRINGTerminalRuleCall_7_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBPMNDiagramRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"bpmn",
+            						lv_bpmn_7_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,17,FOLLOW_9); 
+
+            			newLeafNode(otherlv_8, grammarAccess.getBPMNDiagramAccess().getWithKeyword_8());
+            		
+            otherlv_9=(Token)match(input,20,FOLLOW_7); 
+
+            			newLeafNode(otherlv_9, grammarAccess.getBPMNDiagramAccess().getKeyKeyword_9());
+            		
+            // InternalTestgeneratorDSL.g:288:3: ( (lv_key_10_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:289:4: (lv_key_10_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:289:4: (lv_key_10_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:290:5: lv_key_10_0= RULE_STRING
+            {
+            lv_key_10_0=(Token)match(input,RULE_STRING,FOLLOW_10); 
+
+            					newLeafNode(lv_key_10_0, grammarAccess.getBPMNDiagramAccess().getKeySTRINGTerminalRuleCall_10_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBPMNDiagramRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"key",
+            						lv_key_10_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:306:3: (otherlv_11= 'with' otherlv_12= 'dmn' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==17) ) {
+                int LA5_1 = input.LA(2);
+
+                if ( (LA5_1==21) ) {
+                    alt5=1;
+                }
+            }
+            switch (alt5) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:307:4: otherlv_11= 'with' otherlv_12= 'dmn' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED
+                    {
+                    otherlv_11=(Token)match(input,17,FOLLOW_11); 
+
+                    				newLeafNode(otherlv_11, grammarAccess.getBPMNDiagramAccess().getWithKeyword_11_0());
+                    			
+                    otherlv_12=(Token)match(input,21,FOLLOW_12); 
+
+                    				newLeafNode(otherlv_12, grammarAccess.getBPMNDiagramAccess().getDmnKeyword_11_1());
+                    			
+                    this_ASSOCIATION_13=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+                    				newLeafNode(this_ASSOCIATION_13, grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_11_2());
+                    			
+                    this_LIST_OPEN_14=(Token)match(input,RULE_LIST_OPEN,FOLLOW_14); 
+
+                    				newLeafNode(this_LIST_OPEN_14, grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_11_3());
+                    			
+                    // InternalTestgeneratorDSL.g:323:4: ( ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )* )?
+                    int alt4=2;
+                    int LA4_0 = input.LA(1);
+
+                    if ( (LA4_0==RULE_STRING) ) {
+                        alt4=1;
+                    }
+                    switch (alt4) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:324:5: ( (lv_dmn_15_0= RULE_STRING ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )*
+                            {
+                            // InternalTestgeneratorDSL.g:324:5: ( (lv_dmn_15_0= RULE_STRING ) )
+                            // InternalTestgeneratorDSL.g:325:6: (lv_dmn_15_0= RULE_STRING )
+                            {
+                            // InternalTestgeneratorDSL.g:325:6: (lv_dmn_15_0= RULE_STRING )
+                            // InternalTestgeneratorDSL.g:326:7: lv_dmn_15_0= RULE_STRING
+                            {
+                            lv_dmn_15_0=(Token)match(input,RULE_STRING,FOLLOW_15); 
+
+                            							newLeafNode(lv_dmn_15_0, grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_0_0());
+                            						
+
+                            							if (current==null) {
+                            								current = createModelElement(grammarAccess.getBPMNDiagramRule());
+                            							}
+                            							addWithLastConsumed(
+                            								current,
+                            								"dmn",
+                            								lv_dmn_15_0,
+                            								"org.eclipse.xtext.common.Terminals.STRING");
+                            						
+
+                            }
+
+
+                            }
+
+                            // InternalTestgeneratorDSL.g:342:5: (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) ) )*
+                            loop3:
+                            do {
+                                int alt3=2;
+                                int LA3_0 = input.LA(1);
+
+                                if ( (LA3_0==RULE_SEPARATOR) ) {
+                                    alt3=1;
+                                }
+
+
+                                switch (alt3) {
+                            	case 1 :
+                            	    // InternalTestgeneratorDSL.g:343:6: this_SEPARATOR_16= RULE_SEPARATOR ( (lv_dmn_17_0= RULE_STRING ) )
+                            	    {
+                            	    this_SEPARATOR_16=(Token)match(input,RULE_SEPARATOR,FOLLOW_7); 
+
+                            	    						newLeafNode(this_SEPARATOR_16, grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_11_4_1_0());
+                            	    					
+                            	    // InternalTestgeneratorDSL.g:347:6: ( (lv_dmn_17_0= RULE_STRING ) )
+                            	    // InternalTestgeneratorDSL.g:348:7: (lv_dmn_17_0= RULE_STRING )
+                            	    {
+                            	    // InternalTestgeneratorDSL.g:348:7: (lv_dmn_17_0= RULE_STRING )
+                            	    // InternalTestgeneratorDSL.g:349:8: lv_dmn_17_0= RULE_STRING
+                            	    {
+                            	    lv_dmn_17_0=(Token)match(input,RULE_STRING,FOLLOW_15); 
+
+                            	    								newLeafNode(lv_dmn_17_0, grammarAccess.getBPMNDiagramAccess().getDmnSTRINGTerminalRuleCall_11_4_1_1_0());
+                            	    							
+
+                            	    								if (current==null) {
+                            	    									current = createModelElement(grammarAccess.getBPMNDiagramRule());
+                            	    								}
+                            	    								addWithLastConsumed(
+                            	    									current,
+                            	    									"dmn",
+                            	    									lv_dmn_17_0,
+                            	    									"org.eclipse.xtext.common.Terminals.STRING");
+                            	    							
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop3;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    this_LIST_CLOSED_18=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_10); 
+
+                    				newLeafNode(this_LIST_CLOSED_18, grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_11_5());
+                    			
+
+                    }
+                    break;
+
+            }
+
+            // InternalTestgeneratorDSL.g:372:3: (otherlv_19= 'with' otherlv_20= 'embedded' this_ASSOCIATION_21= RULE_ASSOCIATION this_LIST_OPEN_22= RULE_LIST_OPEN ( ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_26= RULE_LIST_CLOSED )?
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==17) ) {
+                alt8=1;
+            }
+            switch (alt8) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:373:4: otherlv_19= 'with' otherlv_20= 'embedded' this_ASSOCIATION_21= RULE_ASSOCIATION this_LIST_OPEN_22= RULE_LIST_OPEN ( ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_26= RULE_LIST_CLOSED
+                    {
+                    otherlv_19=(Token)match(input,17,FOLLOW_16); 
+
+                    				newLeafNode(otherlv_19, grammarAccess.getBPMNDiagramAccess().getWithKeyword_12_0());
+                    			
+                    otherlv_20=(Token)match(input,22,FOLLOW_12); 
+
+                    				newLeafNode(otherlv_20, grammarAccess.getBPMNDiagramAccess().getEmbeddedKeyword_12_1());
+                    			
+                    this_ASSOCIATION_21=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+                    				newLeafNode(this_ASSOCIATION_21, grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_12_2());
+                    			
+                    this_LIST_OPEN_22=(Token)match(input,RULE_LIST_OPEN,FOLLOW_14); 
+
+                    				newLeafNode(this_LIST_OPEN_22, grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_12_3());
+                    			
+                    // InternalTestgeneratorDSL.g:389:4: ( ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )* )?
+                    int alt7=2;
+                    int LA7_0 = input.LA(1);
+
+                    if ( (LA7_0==RULE_STRING) ) {
+                        alt7=1;
+                    }
+                    switch (alt7) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:390:5: ( (lv_embedded_23_0= RULE_STRING ) ) (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )*
+                            {
+                            // InternalTestgeneratorDSL.g:390:5: ( (lv_embedded_23_0= RULE_STRING ) )
+                            // InternalTestgeneratorDSL.g:391:6: (lv_embedded_23_0= RULE_STRING )
+                            {
+                            // InternalTestgeneratorDSL.g:391:6: (lv_embedded_23_0= RULE_STRING )
+                            // InternalTestgeneratorDSL.g:392:7: lv_embedded_23_0= RULE_STRING
+                            {
+                            lv_embedded_23_0=(Token)match(input,RULE_STRING,FOLLOW_15); 
+
+                            							newLeafNode(lv_embedded_23_0, grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_0_0());
+                            						
+
+                            							if (current==null) {
+                            								current = createModelElement(grammarAccess.getBPMNDiagramRule());
+                            							}
+                            							addWithLastConsumed(
+                            								current,
+                            								"embedded",
+                            								lv_embedded_23_0,
+                            								"org.eclipse.xtext.common.Terminals.STRING");
+                            						
+
+                            }
+
+
+                            }
+
+                            // InternalTestgeneratorDSL.g:408:5: (this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) ) )*
+                            loop6:
+                            do {
+                                int alt6=2;
+                                int LA6_0 = input.LA(1);
+
+                                if ( (LA6_0==RULE_SEPARATOR) ) {
+                                    alt6=1;
+                                }
+
+
+                                switch (alt6) {
+                            	case 1 :
+                            	    // InternalTestgeneratorDSL.g:409:6: this_SEPARATOR_24= RULE_SEPARATOR ( (lv_embedded_25_0= RULE_STRING ) )
+                            	    {
+                            	    this_SEPARATOR_24=(Token)match(input,RULE_SEPARATOR,FOLLOW_7); 
+
+                            	    						newLeafNode(this_SEPARATOR_24, grammarAccess.getBPMNDiagramAccess().getSEPARATORTerminalRuleCall_12_4_1_0());
+                            	    					
+                            	    // InternalTestgeneratorDSL.g:413:6: ( (lv_embedded_25_0= RULE_STRING ) )
+                            	    // InternalTestgeneratorDSL.g:414:7: (lv_embedded_25_0= RULE_STRING )
+                            	    {
+                            	    // InternalTestgeneratorDSL.g:414:7: (lv_embedded_25_0= RULE_STRING )
+                            	    // InternalTestgeneratorDSL.g:415:8: lv_embedded_25_0= RULE_STRING
+                            	    {
+                            	    lv_embedded_25_0=(Token)match(input,RULE_STRING,FOLLOW_15); 
+
+                            	    								newLeafNode(lv_embedded_25_0, grammarAccess.getBPMNDiagramAccess().getEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0());
+                            	    							
+
+                            	    								if (current==null) {
+                            	    									current = createModelElement(grammarAccess.getBPMNDiagramRule());
+                            	    								}
+                            	    								addWithLastConsumed(
+                            	    									current,
+                            	    									"embedded",
+                            	    									lv_embedded_25_0,
+                            	    									"org.eclipse.xtext.common.Terminals.STRING");
+                            	    							
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop6;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    this_LIST_CLOSED_26=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+                    				newLeafNode(this_LIST_CLOSED_26, grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_12_5());
+                    			
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_27=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_27, grammarAccess.getBPMNDiagramAccess().getDECLARATION_FINISHEDTerminalRuleCall_13());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBPMNDiagram"
+
+
+    // $ANTLR start "entryRuleBPMNReference"
+    // InternalTestgeneratorDSL.g:446:1: entryRuleBPMNReference returns [EObject current=null] : iv_ruleBPMNReference= ruleBPMNReference EOF ;
+    public final EObject entryRuleBPMNReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBPMNReference = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:446:54: (iv_ruleBPMNReference= ruleBPMNReference EOF )
+            // InternalTestgeneratorDSL.g:447:2: iv_ruleBPMNReference= ruleBPMNReference EOF
+            {
+             newCompositeNode(grammarAccess.getBPMNReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBPMNReference=ruleBPMNReference();
+
+            state._fsp--;
+
+             current =iv_ruleBPMNReference; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBPMNReference"
+
+
+    // $ANTLR start "ruleBPMNReference"
+    // InternalTestgeneratorDSL.g:453:1: ruleBPMNReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
+    public final EObject ruleBPMNReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:459:2: ( ( (otherlv_0= RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:460:2: ( (otherlv_0= RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:460:2: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:461:3: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:461:3: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:462:4: otherlv_0= RULE_ID
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getBPMNReferenceRule());
+            				}
+            			
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2); 
+
+            				newLeafNode(otherlv_0, grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramCrossReference_0());
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBPMNReference"
+
+
+    // $ANTLR start "entryRuleFlowElement"
+    // InternalTestgeneratorDSL.g:476:1: entryRuleFlowElement returns [EObject current=null] : iv_ruleFlowElement= ruleFlowElement EOF ;
+    public final EObject entryRuleFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:476:52: (iv_ruleFlowElement= ruleFlowElement EOF )
+            // InternalTestgeneratorDSL.g:477:2: iv_ruleFlowElement= ruleFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleFlowElement=ruleFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFlowElement"
+
+
+    // $ANTLR start "ruleFlowElement"
+    // InternalTestgeneratorDSL.g:483:1: ruleFlowElement returns [EObject current=null] : (this_StartFlowElement_0= ruleStartFlowElement | this_EndFlowElement_1= ruleEndFlowElement | this_UserTaskFlowElement_2= ruleUserTaskFlowElement | this_ManualTaskFlowElement_3= ruleManualTaskFlowElement | this_ScriptTaskFlowElement_4= ruleScriptTaskFlowElement | this_ServiceTaskFlowElement_5= ruleServiceTaskFlowElement | this_BusinessRuleTaskFlowElement_6= ruleBusinessRuleTaskFlowElement | this_GatewayFlowElement_7= ruleGatewayFlowElement | this_SequenceFlowElement_8= ruleSequenceFlowElement ) ;
+    public final EObject ruleFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_StartFlowElement_0 = null;
+
+        EObject this_EndFlowElement_1 = null;
+
+        EObject this_UserTaskFlowElement_2 = null;
+
+        EObject this_ManualTaskFlowElement_3 = null;
+
+        EObject this_ScriptTaskFlowElement_4 = null;
+
+        EObject this_ServiceTaskFlowElement_5 = null;
+
+        EObject this_BusinessRuleTaskFlowElement_6 = null;
+
+        EObject this_GatewayFlowElement_7 = null;
+
+        EObject this_SequenceFlowElement_8 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:489:2: ( (this_StartFlowElement_0= ruleStartFlowElement | this_EndFlowElement_1= ruleEndFlowElement | this_UserTaskFlowElement_2= ruleUserTaskFlowElement | this_ManualTaskFlowElement_3= ruleManualTaskFlowElement | this_ScriptTaskFlowElement_4= ruleScriptTaskFlowElement | this_ServiceTaskFlowElement_5= ruleServiceTaskFlowElement | this_BusinessRuleTaskFlowElement_6= ruleBusinessRuleTaskFlowElement | this_GatewayFlowElement_7= ruleGatewayFlowElement | this_SequenceFlowElement_8= ruleSequenceFlowElement ) )
+            // InternalTestgeneratorDSL.g:490:2: (this_StartFlowElement_0= ruleStartFlowElement | this_EndFlowElement_1= ruleEndFlowElement | this_UserTaskFlowElement_2= ruleUserTaskFlowElement | this_ManualTaskFlowElement_3= ruleManualTaskFlowElement | this_ScriptTaskFlowElement_4= ruleScriptTaskFlowElement | this_ServiceTaskFlowElement_5= ruleServiceTaskFlowElement | this_BusinessRuleTaskFlowElement_6= ruleBusinessRuleTaskFlowElement | this_GatewayFlowElement_7= ruleGatewayFlowElement | this_SequenceFlowElement_8= ruleSequenceFlowElement )
+            {
+            // InternalTestgeneratorDSL.g:490:2: (this_StartFlowElement_0= ruleStartFlowElement | this_EndFlowElement_1= ruleEndFlowElement | this_UserTaskFlowElement_2= ruleUserTaskFlowElement | this_ManualTaskFlowElement_3= ruleManualTaskFlowElement | this_ScriptTaskFlowElement_4= ruleScriptTaskFlowElement | this_ServiceTaskFlowElement_5= ruleServiceTaskFlowElement | this_BusinessRuleTaskFlowElement_6= ruleBusinessRuleTaskFlowElement | this_GatewayFlowElement_7= ruleGatewayFlowElement | this_SequenceFlowElement_8= ruleSequenceFlowElement )
+            int alt9=9;
+            alt9 = dfa9.predict(input);
+            switch (alt9) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:491:3: this_StartFlowElement_0= ruleStartFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getStartFlowElementParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_StartFlowElement_0=ruleStartFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_StartFlowElement_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:500:3: this_EndFlowElement_1= ruleEndFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getEndFlowElementParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_EndFlowElement_1=ruleEndFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_EndFlowElement_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:509:3: this_UserTaskFlowElement_2= ruleUserTaskFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getUserTaskFlowElementParserRuleCall_2());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_UserTaskFlowElement_2=ruleUserTaskFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_UserTaskFlowElement_2;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTestgeneratorDSL.g:518:3: this_ManualTaskFlowElement_3= ruleManualTaskFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getManualTaskFlowElementParserRuleCall_3());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_ManualTaskFlowElement_3=ruleManualTaskFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_ManualTaskFlowElement_3;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTestgeneratorDSL.g:527:3: this_ScriptTaskFlowElement_4= ruleScriptTaskFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getScriptTaskFlowElementParserRuleCall_4());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_ScriptTaskFlowElement_4=ruleScriptTaskFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_ScriptTaskFlowElement_4;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTestgeneratorDSL.g:536:3: this_ServiceTaskFlowElement_5= ruleServiceTaskFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getServiceTaskFlowElementParserRuleCall_5());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_ServiceTaskFlowElement_5=ruleServiceTaskFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_ServiceTaskFlowElement_5;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 7 :
+                    // InternalTestgeneratorDSL.g:545:3: this_BusinessRuleTaskFlowElement_6= ruleBusinessRuleTaskFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getBusinessRuleTaskFlowElementParserRuleCall_6());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_BusinessRuleTaskFlowElement_6=ruleBusinessRuleTaskFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_BusinessRuleTaskFlowElement_6;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 8 :
+                    // InternalTestgeneratorDSL.g:554:3: this_GatewayFlowElement_7= ruleGatewayFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getGatewayFlowElementParserRuleCall_7());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_GatewayFlowElement_7=ruleGatewayFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_GatewayFlowElement_7;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 9 :
+                    // InternalTestgeneratorDSL.g:563:3: this_SequenceFlowElement_8= ruleSequenceFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getFlowElementAccess().getSequenceFlowElementParserRuleCall_8());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_SequenceFlowElement_8=ruleSequenceFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_SequenceFlowElement_8;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFlowElement"
+
+
+    // $ANTLR start "entryRuleStartFlowElement"
+    // InternalTestgeneratorDSL.g:575:1: entryRuleStartFlowElement returns [EObject current=null] : iv_ruleStartFlowElement= ruleStartFlowElement EOF ;
+    public final EObject entryRuleStartFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStartFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:575:57: (iv_ruleStartFlowElement= ruleStartFlowElement EOF )
+            // InternalTestgeneratorDSL.g:576:2: iv_ruleStartFlowElement= ruleStartFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getStartFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleStartFlowElement=ruleStartFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleStartFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStartFlowElement"
+
+
+    // $ANTLR start "ruleStartFlowElement"
+    // InternalTestgeneratorDSL.g:582:1: ruleStartFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'StartEvent' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleStartFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token this_ASSOCIATION_6=null;
+        Token this_LIST_OPEN_7=null;
+        Token this_SEPARATOR_9=null;
+        Token this_LIST_CLOSED_11=null;
+        Token this_DECLARATION_FINISHED_12=null;
+        EObject lv_inputVariables_8_0 = null;
+
+        EObject lv_inputVariables_10_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:588:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'StartEvent' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:589:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'StartEvent' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:589:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'StartEvent' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:590:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'StartEvent' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getStartFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:594:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:595:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:595:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:596:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getStartFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStartFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_18); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,24,FOLLOW_10); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getStartFlowElementAccess().getStartEventKeyword_3());
+            		
+            // InternalTestgeneratorDSL.g:620:3: (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==17) ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:621:4: otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED
+                    {
+                    otherlv_4=(Token)match(input,17,FOLLOW_19); 
+
+                    				newLeafNode(otherlv_4, grammarAccess.getStartFlowElementAccess().getWithKeyword_4_0());
+                    			
+                    otherlv_5=(Token)match(input,25,FOLLOW_12); 
+
+                    				newLeafNode(otherlv_5, grammarAccess.getStartFlowElementAccess().getInputVariablesKeyword_4_1());
+                    			
+                    this_ASSOCIATION_6=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+                    				newLeafNode(this_ASSOCIATION_6, grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2());
+                    			
+                    this_LIST_OPEN_7=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+                    				newLeafNode(this_LIST_OPEN_7, grammarAccess.getStartFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3());
+                    			
+                    // InternalTestgeneratorDSL.g:637:4: ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )?
+                    int alt11=2;
+                    int LA11_0 = input.LA(1);
+
+                    if ( (LA11_0==RULE_ID) ) {
+                        alt11=1;
+                    }
+                    switch (alt11) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:638:5: ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )*
+                            {
+                            // InternalTestgeneratorDSL.g:638:5: ( (lv_inputVariables_8_0= ruleVariableReference ) )
+                            // InternalTestgeneratorDSL.g:639:6: (lv_inputVariables_8_0= ruleVariableReference )
+                            {
+                            // InternalTestgeneratorDSL.g:639:6: (lv_inputVariables_8_0= ruleVariableReference )
+                            // InternalTestgeneratorDSL.g:640:7: lv_inputVariables_8_0= ruleVariableReference
+                            {
+
+                            							newCompositeNode(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0());
+                            						
+                            pushFollow(FOLLOW_15);
+                            lv_inputVariables_8_0=ruleVariableReference();
+
+                            state._fsp--;
+
+
+                            							if (current==null) {
+                            								current = createModelElementForParent(grammarAccess.getStartFlowElementRule());
+                            							}
+                            							add(
+                            								current,
+                            								"inputVariables",
+                            								lv_inputVariables_8_0,
+                            								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+                            							afterParserOrEnumRuleCall();
+                            						
+
+                            }
+
+
+                            }
+
+                            // InternalTestgeneratorDSL.g:657:5: (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )*
+                            loop10:
+                            do {
+                                int alt10=2;
+                                int LA10_0 = input.LA(1);
+
+                                if ( (LA10_0==RULE_SEPARATOR) ) {
+                                    alt10=1;
+                                }
+
+
+                                switch (alt10) {
+                            	case 1 :
+                            	    // InternalTestgeneratorDSL.g:658:6: this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) )
+                            	    {
+                            	    this_SEPARATOR_9=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                            	    						newLeafNode(this_SEPARATOR_9, grammarAccess.getStartFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0());
+                            	    					
+                            	    // InternalTestgeneratorDSL.g:662:6: ( (lv_inputVariables_10_0= ruleVariableReference ) )
+                            	    // InternalTestgeneratorDSL.g:663:7: (lv_inputVariables_10_0= ruleVariableReference )
+                            	    {
+                            	    // InternalTestgeneratorDSL.g:663:7: (lv_inputVariables_10_0= ruleVariableReference )
+                            	    // InternalTestgeneratorDSL.g:664:8: lv_inputVariables_10_0= ruleVariableReference
+                            	    {
+
+                            	    								newCompositeNode(grammarAccess.getStartFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0());
+                            	    							
+                            	    pushFollow(FOLLOW_15);
+                            	    lv_inputVariables_10_0=ruleVariableReference();
+
+                            	    state._fsp--;
+
+
+                            	    								if (current==null) {
+                            	    									current = createModelElementForParent(grammarAccess.getStartFlowElementRule());
+                            	    								}
+                            	    								add(
+                            	    									current,
+                            	    									"inputVariables",
+                            	    									lv_inputVariables_10_0,
+                            	    									"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+                            	    								afterParserOrEnumRuleCall();
+                            	    							
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop10;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    this_LIST_CLOSED_11=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+                    				newLeafNode(this_LIST_CLOSED_11, grammarAccess.getStartFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5());
+                    			
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_12=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_12, grammarAccess.getStartFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStartFlowElement"
+
+
+    // $ANTLR start "entryRuleEndFlowElement"
+    // InternalTestgeneratorDSL.g:696:1: entryRuleEndFlowElement returns [EObject current=null] : iv_ruleEndFlowElement= ruleEndFlowElement EOF ;
+    public final EObject entryRuleEndFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleEndFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:696:55: (iv_ruleEndFlowElement= ruleEndFlowElement EOF )
+            // InternalTestgeneratorDSL.g:697:2: iv_ruleEndFlowElement= ruleEndFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getEndFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleEndFlowElement=ruleEndFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleEndFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleEndFlowElement"
+
+
+    // $ANTLR start "ruleEndFlowElement"
+    // InternalTestgeneratorDSL.g:703:1: ruleEndFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'EndEvent' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleEndFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token this_DECLARATION_FINISHED_4=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:709:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'EndEvent' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:710:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'EndEvent' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:710:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'EndEvent' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:711:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'EndEvent' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getEndFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:715:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:716:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:716:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:717:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getEndFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getEndFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_21); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getEndFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,26,FOLLOW_17); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getEndFlowElementAccess().getEndEventKeyword_3());
+            		
+            this_DECLARATION_FINISHED_4=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getEndFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleEndFlowElement"
+
+
+    // $ANTLR start "entryRuleUserTaskFlowElement"
+    // InternalTestgeneratorDSL.g:749:1: entryRuleUserTaskFlowElement returns [EObject current=null] : iv_ruleUserTaskFlowElement= ruleUserTaskFlowElement EOF ;
+    public final EObject entryRuleUserTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleUserTaskFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:749:60: (iv_ruleUserTaskFlowElement= ruleUserTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:750:2: iv_ruleUserTaskFlowElement= ruleUserTaskFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getUserTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleUserTaskFlowElement=ruleUserTaskFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleUserTaskFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleUserTaskFlowElement"
+
+
+    // $ANTLR start "ruleUserTaskFlowElement"
+    // InternalTestgeneratorDSL.g:756:1: ruleUserTaskFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'UserTask' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleUserTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token this_ASSOCIATION_6=null;
+        Token this_LIST_OPEN_7=null;
+        Token this_SEPARATOR_9=null;
+        Token this_LIST_CLOSED_11=null;
+        Token this_DECLARATION_FINISHED_12=null;
+        EObject lv_inputVariables_8_0 = null;
+
+        EObject lv_inputVariables_10_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:762:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'UserTask' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:763:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'UserTask' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:763:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'UserTask' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:764:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'UserTask' (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_12= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getUserTaskFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:768:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:769:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:769:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:770:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getUserTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getUserTaskFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_22); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,27,FOLLOW_10); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getUserTaskFlowElementAccess().getUserTaskKeyword_3());
+            		
+            // InternalTestgeneratorDSL.g:794:3: (otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED )?
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==17) ) {
+                alt15=1;
+            }
+            switch (alt15) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:795:4: otherlv_4= 'with' otherlv_5= 'inputVariables' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED
+                    {
+                    otherlv_4=(Token)match(input,17,FOLLOW_19); 
+
+                    				newLeafNode(otherlv_4, grammarAccess.getUserTaskFlowElementAccess().getWithKeyword_4_0());
+                    			
+                    otherlv_5=(Token)match(input,25,FOLLOW_12); 
+
+                    				newLeafNode(otherlv_5, grammarAccess.getUserTaskFlowElementAccess().getInputVariablesKeyword_4_1());
+                    			
+                    this_ASSOCIATION_6=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+                    				newLeafNode(this_ASSOCIATION_6, grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2());
+                    			
+                    this_LIST_OPEN_7=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+                    				newLeafNode(this_LIST_OPEN_7, grammarAccess.getUserTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3());
+                    			
+                    // InternalTestgeneratorDSL.g:811:4: ( ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )* )?
+                    int alt14=2;
+                    int LA14_0 = input.LA(1);
+
+                    if ( (LA14_0==RULE_ID) ) {
+                        alt14=1;
+                    }
+                    switch (alt14) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:812:5: ( (lv_inputVariables_8_0= ruleVariableReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )*
+                            {
+                            // InternalTestgeneratorDSL.g:812:5: ( (lv_inputVariables_8_0= ruleVariableReference ) )
+                            // InternalTestgeneratorDSL.g:813:6: (lv_inputVariables_8_0= ruleVariableReference )
+                            {
+                            // InternalTestgeneratorDSL.g:813:6: (lv_inputVariables_8_0= ruleVariableReference )
+                            // InternalTestgeneratorDSL.g:814:7: lv_inputVariables_8_0= ruleVariableReference
+                            {
+
+                            							newCompositeNode(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_0_0());
+                            						
+                            pushFollow(FOLLOW_15);
+                            lv_inputVariables_8_0=ruleVariableReference();
+
+                            state._fsp--;
+
+
+                            							if (current==null) {
+                            								current = createModelElementForParent(grammarAccess.getUserTaskFlowElementRule());
+                            							}
+                            							add(
+                            								current,
+                            								"inputVariables",
+                            								lv_inputVariables_8_0,
+                            								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+                            							afterParserOrEnumRuleCall();
+                            						
+
+                            }
+
+
+                            }
+
+                            // InternalTestgeneratorDSL.g:831:5: (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) ) )*
+                            loop13:
+                            do {
+                                int alt13=2;
+                                int LA13_0 = input.LA(1);
+
+                                if ( (LA13_0==RULE_SEPARATOR) ) {
+                                    alt13=1;
+                                }
+
+
+                                switch (alt13) {
+                            	case 1 :
+                            	    // InternalTestgeneratorDSL.g:832:6: this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inputVariables_10_0= ruleVariableReference ) )
+                            	    {
+                            	    this_SEPARATOR_9=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                            	    						newLeafNode(this_SEPARATOR_9, grammarAccess.getUserTaskFlowElementAccess().getSEPARATORTerminalRuleCall_4_4_1_0());
+                            	    					
+                            	    // InternalTestgeneratorDSL.g:836:6: ( (lv_inputVariables_10_0= ruleVariableReference ) )
+                            	    // InternalTestgeneratorDSL.g:837:7: (lv_inputVariables_10_0= ruleVariableReference )
+                            	    {
+                            	    // InternalTestgeneratorDSL.g:837:7: (lv_inputVariables_10_0= ruleVariableReference )
+                            	    // InternalTestgeneratorDSL.g:838:8: lv_inputVariables_10_0= ruleVariableReference
+                            	    {
+
+                            	    								newCompositeNode(grammarAccess.getUserTaskFlowElementAccess().getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0());
+                            	    							
+                            	    pushFollow(FOLLOW_15);
+                            	    lv_inputVariables_10_0=ruleVariableReference();
+
+                            	    state._fsp--;
+
+
+                            	    								if (current==null) {
+                            	    									current = createModelElementForParent(grammarAccess.getUserTaskFlowElementRule());
+                            	    								}
+                            	    								add(
+                            	    									current,
+                            	    									"inputVariables",
+                            	    									lv_inputVariables_10_0,
+                            	    									"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+                            	    								afterParserOrEnumRuleCall();
+                            	    							
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop13;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    this_LIST_CLOSED_11=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+                    				newLeafNode(this_LIST_CLOSED_11, grammarAccess.getUserTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5());
+                    			
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_12=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_12, grammarAccess.getUserTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleUserTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleManualTaskFlowElement"
+    // InternalTestgeneratorDSL.g:870:1: entryRuleManualTaskFlowElement returns [EObject current=null] : iv_ruleManualTaskFlowElement= ruleManualTaskFlowElement EOF ;
+    public final EObject entryRuleManualTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleManualTaskFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:870:62: (iv_ruleManualTaskFlowElement= ruleManualTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:871:2: iv_ruleManualTaskFlowElement= ruleManualTaskFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getManualTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleManualTaskFlowElement=ruleManualTaskFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleManualTaskFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleManualTaskFlowElement"
+
+
+    // $ANTLR start "ruleManualTaskFlowElement"
+    // InternalTestgeneratorDSL.g:877:1: ruleManualTaskFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ManualTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleManualTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token this_DECLARATION_FINISHED_4=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:883:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ManualTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:884:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ManualTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:884:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ManualTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:885:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ManualTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getManualTaskFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:889:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:890:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:890:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:891:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getManualTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getManualTaskFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_23); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getManualTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,28,FOLLOW_17); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getManualTaskFlowElementAccess().getManualTaskKeyword_3());
+            		
+            this_DECLARATION_FINISHED_4=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getManualTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleManualTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleScriptTaskFlowElement"
+    // InternalTestgeneratorDSL.g:923:1: entryRuleScriptTaskFlowElement returns [EObject current=null] : iv_ruleScriptTaskFlowElement= ruleScriptTaskFlowElement EOF ;
+    public final EObject entryRuleScriptTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleScriptTaskFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:923:62: (iv_ruleScriptTaskFlowElement= ruleScriptTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:924:2: iv_ruleScriptTaskFlowElement= ruleScriptTaskFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getScriptTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleScriptTaskFlowElement=ruleScriptTaskFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleScriptTaskFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleScriptTaskFlowElement"
+
+
+    // $ANTLR start "ruleScriptTaskFlowElement"
+    // InternalTestgeneratorDSL.g:930:1: ruleScriptTaskFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ScriptTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleScriptTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token this_DECLARATION_FINISHED_4=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:936:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ScriptTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:937:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ScriptTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:937:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ScriptTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:938:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ScriptTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getScriptTaskFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:942:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:943:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:943:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:944:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getScriptTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getScriptTaskFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_24); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getScriptTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,29,FOLLOW_17); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getScriptTaskFlowElementAccess().getScriptTaskKeyword_3());
+            		
+            this_DECLARATION_FINISHED_4=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getScriptTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleScriptTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:976:1: entryRuleServiceTaskFlowElement returns [EObject current=null] : iv_ruleServiceTaskFlowElement= ruleServiceTaskFlowElement EOF ;
+    public final EObject entryRuleServiceTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleServiceTaskFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:976:63: (iv_ruleServiceTaskFlowElement= ruleServiceTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:977:2: iv_ruleServiceTaskFlowElement= ruleServiceTaskFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getServiceTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleServiceTaskFlowElement=ruleServiceTaskFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleServiceTaskFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleServiceTaskFlowElement"
+
+
+    // $ANTLR start "ruleServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:983:1: ruleServiceTaskFlowElement returns [EObject current=null] : (this_DelegateServiceTaskFlowElement_0= ruleDelegateServiceTaskFlowElement | this_ExternalServiceTaskFlowElement_1= ruleExternalServiceTaskFlowElement ) ;
+    public final EObject ruleServiceTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_DelegateServiceTaskFlowElement_0 = null;
+
+        EObject this_ExternalServiceTaskFlowElement_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:989:2: ( (this_DelegateServiceTaskFlowElement_0= ruleDelegateServiceTaskFlowElement | this_ExternalServiceTaskFlowElement_1= ruleExternalServiceTaskFlowElement ) )
+            // InternalTestgeneratorDSL.g:990:2: (this_DelegateServiceTaskFlowElement_0= ruleDelegateServiceTaskFlowElement | this_ExternalServiceTaskFlowElement_1= ruleExternalServiceTaskFlowElement )
+            {
+            // InternalTestgeneratorDSL.g:990:2: (this_DelegateServiceTaskFlowElement_0= ruleDelegateServiceTaskFlowElement | this_ExternalServiceTaskFlowElement_1= ruleExternalServiceTaskFlowElement )
+            int alt16=2;
+            int LA16_0 = input.LA(1);
+
+            if ( (LA16_0==23) ) {
+                int LA16_1 = input.LA(2);
+
+                if ( (LA16_1==RULE_ID) ) {
+                    int LA16_2 = input.LA(3);
+
+                    if ( (LA16_2==RULE_ASSOCIATION) ) {
+                        int LA16_3 = input.LA(4);
+
+                        if ( (LA16_3==30) ) {
+                            int LA16_4 = input.LA(5);
+
+                            if ( (LA16_4==17) ) {
+                                int LA16_5 = input.LA(6);
+
+                                if ( (LA16_5==32) ) {
+                                    alt16=2;
+                                }
+                                else if ( (LA16_5==31) ) {
+                                    alt16=1;
+                                }
+                                else {
+                                    NoViableAltException nvae =
+                                        new NoViableAltException("", 16, 5, input);
+
+                                    throw nvae;
+                                }
+                            }
+                            else {
+                                NoViableAltException nvae =
+                                    new NoViableAltException("", 16, 4, input);
+
+                                throw nvae;
+                            }
+                        }
+                        else {
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 16, 3, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 16, 2, input);
+
+                        throw nvae;
+                    }
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 16, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 16, 0, input);
+
+                throw nvae;
+            }
+            switch (alt16) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:991:3: this_DelegateServiceTaskFlowElement_0= ruleDelegateServiceTaskFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getServiceTaskFlowElementAccess().getDelegateServiceTaskFlowElementParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_DelegateServiceTaskFlowElement_0=ruleDelegateServiceTaskFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_DelegateServiceTaskFlowElement_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1000:3: this_ExternalServiceTaskFlowElement_1= ruleExternalServiceTaskFlowElement
+                    {
+
+                    			newCompositeNode(grammarAccess.getServiceTaskFlowElementAccess().getExternalServiceTaskFlowElementParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_ExternalServiceTaskFlowElement_1=ruleExternalServiceTaskFlowElement();
+
+                    state._fsp--;
+
+
+                    			current = this_ExternalServiceTaskFlowElement_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleServiceTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleDelegateServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:1012:1: entryRuleDelegateServiceTaskFlowElement returns [EObject current=null] : iv_ruleDelegateServiceTaskFlowElement= ruleDelegateServiceTaskFlowElement EOF ;
+    public final EObject entryRuleDelegateServiceTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDelegateServiceTaskFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1012:71: (iv_ruleDelegateServiceTaskFlowElement= ruleDelegateServiceTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:1013:2: iv_ruleDelegateServiceTaskFlowElement= ruleDelegateServiceTaskFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getDelegateServiceTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleDelegateServiceTaskFlowElement=ruleDelegateServiceTaskFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleDelegateServiceTaskFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDelegateServiceTaskFlowElement"
+
+
+    // $ANTLR start "ruleDelegateServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:1019:1: ruleDelegateServiceTaskFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'delegate' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_delegate_7_0= RULE_STRING ) ) this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleDelegateServiceTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token this_ASSOCIATION_6=null;
+        Token lv_delegate_7_0=null;
+        Token this_DECLARATION_FINISHED_8=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1025:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'delegate' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_delegate_7_0= RULE_STRING ) ) this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1026:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'delegate' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_delegate_7_0= RULE_STRING ) ) this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1026:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'delegate' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_delegate_7_0= RULE_STRING ) ) this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1027:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'delegate' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_delegate_7_0= RULE_STRING ) ) this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getDelegateServiceTaskFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1031:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1032:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1032:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1033:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getDelegateServiceTaskFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_25); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,30,FOLLOW_5); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getDelegateServiceTaskFlowElementAccess().getServiceTaskKeyword_3());
+            		
+            otherlv_4=(Token)match(input,17,FOLLOW_26); 
+
+            			newLeafNode(otherlv_4, grammarAccess.getDelegateServiceTaskFlowElementAccess().getWithKeyword_4());
+            		
+            otherlv_5=(Token)match(input,31,FOLLOW_12); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateKeyword_5());
+            		
+            this_ASSOCIATION_6=(Token)match(input,RULE_ASSOCIATION,FOLLOW_7); 
+
+            			newLeafNode(this_ASSOCIATION_6, grammarAccess.getDelegateServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6());
+            		
+            // InternalTestgeneratorDSL.g:1069:3: ( (lv_delegate_7_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:1070:4: (lv_delegate_7_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:1070:4: (lv_delegate_7_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:1071:5: lv_delegate_7_0= RULE_STRING
+            {
+            lv_delegate_7_0=(Token)match(input,RULE_STRING,FOLLOW_17); 
+
+            					newLeafNode(lv_delegate_7_0, grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateSTRINGTerminalRuleCall_7_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getDelegateServiceTaskFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"delegate",
+            						lv_delegate_7_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            this_DECLARATION_FINISHED_8=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_8, grammarAccess.getDelegateServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDelegateServiceTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleExternalServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:1095:1: entryRuleExternalServiceTaskFlowElement returns [EObject current=null] : iv_ruleExternalServiceTaskFlowElement= ruleExternalServiceTaskFlowElement EOF ;
+    public final EObject entryRuleExternalServiceTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleExternalServiceTaskFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1095:71: (iv_ruleExternalServiceTaskFlowElement= ruleExternalServiceTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:1096:2: iv_ruleExternalServiceTaskFlowElement= ruleExternalServiceTaskFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getExternalServiceTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleExternalServiceTaskFlowElement=ruleExternalServiceTaskFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleExternalServiceTaskFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleExternalServiceTaskFlowElement"
+
+
+    // $ANTLR start "ruleExternalServiceTaskFlowElement"
+    // InternalTestgeneratorDSL.g:1102:1: ruleExternalServiceTaskFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'external' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_externalTopic_7_0= ruleExternalTopicReference ) ) (otherlv_8= 'with' otherlv_9= 'hardcoded' otherlv_10= 'inputs' this_ASSOCIATION_11= RULE_ASSOCIATION this_LIST_OPEN_12= RULE_LIST_OPEN ( ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_16= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_17= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleExternalServiceTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token this_ASSOCIATION_6=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token this_ASSOCIATION_11=null;
+        Token this_LIST_OPEN_12=null;
+        Token this_SEPARATOR_14=null;
+        Token this_LIST_CLOSED_16=null;
+        Token this_DECLARATION_FINISHED_17=null;
+        EObject lv_externalTopic_7_0 = null;
+
+        EObject lv_hardcodedInputs_13_0 = null;
+
+        EObject lv_hardcodedInputs_15_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1108:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'external' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_externalTopic_7_0= ruleExternalTopicReference ) ) (otherlv_8= 'with' otherlv_9= 'hardcoded' otherlv_10= 'inputs' this_ASSOCIATION_11= RULE_ASSOCIATION this_LIST_OPEN_12= RULE_LIST_OPEN ( ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_16= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_17= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1109:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'external' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_externalTopic_7_0= ruleExternalTopicReference ) ) (otherlv_8= 'with' otherlv_9= 'hardcoded' otherlv_10= 'inputs' this_ASSOCIATION_11= RULE_ASSOCIATION this_LIST_OPEN_12= RULE_LIST_OPEN ( ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_16= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_17= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1109:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'external' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_externalTopic_7_0= ruleExternalTopicReference ) ) (otherlv_8= 'with' otherlv_9= 'hardcoded' otherlv_10= 'inputs' this_ASSOCIATION_11= RULE_ASSOCIATION this_LIST_OPEN_12= RULE_LIST_OPEN ( ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_16= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_17= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1110:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'ServiceTask' otherlv_4= 'with' otherlv_5= 'external' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_externalTopic_7_0= ruleExternalTopicReference ) ) (otherlv_8= 'with' otherlv_9= 'hardcoded' otherlv_10= 'inputs' this_ASSOCIATION_11= RULE_ASSOCIATION this_LIST_OPEN_12= RULE_LIST_OPEN ( ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_16= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_17= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getExternalServiceTaskFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1114:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1115:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1115:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1116:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getExternalServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getExternalServiceTaskFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_25); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,30,FOLLOW_5); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getExternalServiceTaskFlowElementAccess().getServiceTaskKeyword_3());
+            		
+            otherlv_4=(Token)match(input,17,FOLLOW_27); 
+
+            			newLeafNode(otherlv_4, grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_4());
+            		
+            otherlv_5=(Token)match(input,32,FOLLOW_12); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalKeyword_5());
+            		
+            this_ASSOCIATION_6=(Token)match(input,RULE_ASSOCIATION,FOLLOW_4); 
+
+            			newLeafNode(this_ASSOCIATION_6, grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_6());
+            		
+            // InternalTestgeneratorDSL.g:1152:3: ( (lv_externalTopic_7_0= ruleExternalTopicReference ) )
+            // InternalTestgeneratorDSL.g:1153:4: (lv_externalTopic_7_0= ruleExternalTopicReference )
+            {
+            // InternalTestgeneratorDSL.g:1153:4: (lv_externalTopic_7_0= ruleExternalTopicReference )
+            // InternalTestgeneratorDSL.g:1154:5: lv_externalTopic_7_0= ruleExternalTopicReference
+            {
+
+            					newCompositeNode(grammarAccess.getExternalServiceTaskFlowElementAccess().getExternalTopicExternalTopicReferenceParserRuleCall_7_0());
+            				
+            pushFollow(FOLLOW_10);
+            lv_externalTopic_7_0=ruleExternalTopicReference();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getExternalServiceTaskFlowElementRule());
+            					}
+            					set(
+            						current,
+            						"externalTopic",
+            						lv_externalTopic_7_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ExternalTopicReference");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:1171:3: (otherlv_8= 'with' otherlv_9= 'hardcoded' otherlv_10= 'inputs' this_ASSOCIATION_11= RULE_ASSOCIATION this_LIST_OPEN_12= RULE_LIST_OPEN ( ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_16= RULE_LIST_CLOSED )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==17) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1172:4: otherlv_8= 'with' otherlv_9= 'hardcoded' otherlv_10= 'inputs' this_ASSOCIATION_11= RULE_ASSOCIATION this_LIST_OPEN_12= RULE_LIST_OPEN ( ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_16= RULE_LIST_CLOSED
+                    {
+                    otherlv_8=(Token)match(input,17,FOLLOW_28); 
+
+                    				newLeafNode(otherlv_8, grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_8_0());
+                    			
+                    otherlv_9=(Token)match(input,33,FOLLOW_29); 
+
+                    				newLeafNode(otherlv_9, grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedKeyword_8_1());
+                    			
+                    otherlv_10=(Token)match(input,34,FOLLOW_12); 
+
+                    				newLeafNode(otherlv_10, grammarAccess.getExternalServiceTaskFlowElementAccess().getInputsKeyword_8_2());
+                    			
+                    this_ASSOCIATION_11=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+                    				newLeafNode(this_ASSOCIATION_11, grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_8_3());
+                    			
+                    this_LIST_OPEN_12=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+                    				newLeafNode(this_LIST_OPEN_12, grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_8_4());
+                    			
+                    // InternalTestgeneratorDSL.g:1192:4: ( ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )* )?
+                    int alt18=2;
+                    int LA18_0 = input.LA(1);
+
+                    if ( (LA18_0==RULE_ID) ) {
+                        alt18=1;
+                    }
+                    switch (alt18) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:1193:5: ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) ) (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )*
+                            {
+                            // InternalTestgeneratorDSL.g:1193:5: ( (lv_hardcodedInputs_13_0= ruleVariableDeclaration ) )
+                            // InternalTestgeneratorDSL.g:1194:6: (lv_hardcodedInputs_13_0= ruleVariableDeclaration )
+                            {
+                            // InternalTestgeneratorDSL.g:1194:6: (lv_hardcodedInputs_13_0= ruleVariableDeclaration )
+                            // InternalTestgeneratorDSL.g:1195:7: lv_hardcodedInputs_13_0= ruleVariableDeclaration
+                            {
+
+                            							newCompositeNode(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0());
+                            						
+                            pushFollow(FOLLOW_15);
+                            lv_hardcodedInputs_13_0=ruleVariableDeclaration();
+
+                            state._fsp--;
+
+
+                            							if (current==null) {
+                            								current = createModelElementForParent(grammarAccess.getExternalServiceTaskFlowElementRule());
+                            							}
+                            							add(
+                            								current,
+                            								"hardcodedInputs",
+                            								lv_hardcodedInputs_13_0,
+                            								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+                            							afterParserOrEnumRuleCall();
+                            						
+
+                            }
+
+
+                            }
+
+                            // InternalTestgeneratorDSL.g:1212:5: (this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) ) )*
+                            loop17:
+                            do {
+                                int alt17=2;
+                                int LA17_0 = input.LA(1);
+
+                                if ( (LA17_0==RULE_SEPARATOR) ) {
+                                    alt17=1;
+                                }
+
+
+                                switch (alt17) {
+                            	case 1 :
+                            	    // InternalTestgeneratorDSL.g:1213:6: this_SEPARATOR_14= RULE_SEPARATOR ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) )
+                            	    {
+                            	    this_SEPARATOR_14=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                            	    						newLeafNode(this_SEPARATOR_14, grammarAccess.getExternalServiceTaskFlowElementAccess().getSEPARATORTerminalRuleCall_8_5_1_0());
+                            	    					
+                            	    // InternalTestgeneratorDSL.g:1217:6: ( (lv_hardcodedInputs_15_0= ruleVariableDeclaration ) )
+                            	    // InternalTestgeneratorDSL.g:1218:7: (lv_hardcodedInputs_15_0= ruleVariableDeclaration )
+                            	    {
+                            	    // InternalTestgeneratorDSL.g:1218:7: (lv_hardcodedInputs_15_0= ruleVariableDeclaration )
+                            	    // InternalTestgeneratorDSL.g:1219:8: lv_hardcodedInputs_15_0= ruleVariableDeclaration
+                            	    {
+
+                            	    								newCompositeNode(grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0());
+                            	    							
+                            	    pushFollow(FOLLOW_15);
+                            	    lv_hardcodedInputs_15_0=ruleVariableDeclaration();
+
+                            	    state._fsp--;
+
+
+                            	    								if (current==null) {
+                            	    									current = createModelElementForParent(grammarAccess.getExternalServiceTaskFlowElementRule());
+                            	    								}
+                            	    								add(
+                            	    									current,
+                            	    									"hardcodedInputs",
+                            	    									lv_hardcodedInputs_15_0,
+                            	    									"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+                            	    								afterParserOrEnumRuleCall();
+                            	    							
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop17;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    this_LIST_CLOSED_16=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+                    				newLeafNode(this_LIST_CLOSED_16, grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_8_6());
+                    			
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_17=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_17, grammarAccess.getExternalServiceTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_9());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleExternalServiceTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleBusinessRuleTaskFlowElement"
+    // InternalTestgeneratorDSL.g:1251:1: entryRuleBusinessRuleTaskFlowElement returns [EObject current=null] : iv_ruleBusinessRuleTaskFlowElement= ruleBusinessRuleTaskFlowElement EOF ;
+    public final EObject entryRuleBusinessRuleTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBusinessRuleTaskFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1251:68: (iv_ruleBusinessRuleTaskFlowElement= ruleBusinessRuleTaskFlowElement EOF )
+            // InternalTestgeneratorDSL.g:1252:2: iv_ruleBusinessRuleTaskFlowElement= ruleBusinessRuleTaskFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getBusinessRuleTaskFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBusinessRuleTaskFlowElement=ruleBusinessRuleTaskFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleBusinessRuleTaskFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBusinessRuleTaskFlowElement"
+
+
+    // $ANTLR start "ruleBusinessRuleTaskFlowElement"
+    // InternalTestgeneratorDSL.g:1258:1: ruleBusinessRuleTaskFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'BusinessRuleTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleBusinessRuleTaskFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token this_DECLARATION_FINISHED_4=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1264:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'BusinessRuleTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1265:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'BusinessRuleTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1265:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'BusinessRuleTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1266:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'BusinessRuleTask' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getBusinessRuleTaskFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1270:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1271:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1271:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1272:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBusinessRuleTaskFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_30); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getBusinessRuleTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,35,FOLLOW_17); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getBusinessRuleTaskFlowElementAccess().getBusinessRuleTaskKeyword_3());
+            		
+            this_DECLARATION_FINISHED_4=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getBusinessRuleTaskFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBusinessRuleTaskFlowElement"
+
+
+    // $ANTLR start "entryRuleGatewayFlowElement"
+    // InternalTestgeneratorDSL.g:1304:1: entryRuleGatewayFlowElement returns [EObject current=null] : iv_ruleGatewayFlowElement= ruleGatewayFlowElement EOF ;
+    public final EObject entryRuleGatewayFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleGatewayFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1304:59: (iv_ruleGatewayFlowElement= ruleGatewayFlowElement EOF )
+            // InternalTestgeneratorDSL.g:1305:2: iv_ruleGatewayFlowElement= ruleGatewayFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getGatewayFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleGatewayFlowElement=ruleGatewayFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleGatewayFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleGatewayFlowElement"
+
+
+    // $ANTLR start "ruleGatewayFlowElement"
+    // InternalTestgeneratorDSL.g:1311:1: ruleGatewayFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'Gateway' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleGatewayFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token this_DECLARATION_FINISHED_4=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1317:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'Gateway' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1318:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'Gateway' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1318:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'Gateway' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1319:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'Gateway' this_DECLARATION_FINISHED_4= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getGatewayFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1323:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1324:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1324:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1325:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getGatewayFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getGatewayFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_31); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getGatewayFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,36,FOLLOW_17); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getGatewayFlowElementAccess().getGatewayKeyword_3());
+            		
+            this_DECLARATION_FINISHED_4=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_4, grammarAccess.getGatewayFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_4());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleGatewayFlowElement"
+
+
+    // $ANTLR start "entryRuleSequenceFlowElement"
+    // InternalTestgeneratorDSL.g:1357:1: entryRuleSequenceFlowElement returns [EObject current=null] : iv_ruleSequenceFlowElement= ruleSequenceFlowElement EOF ;
+    public final EObject entryRuleSequenceFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSequenceFlowElement = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1357:60: (iv_ruleSequenceFlowElement= ruleSequenceFlowElement EOF )
+            // InternalTestgeneratorDSL.g:1358:2: iv_ruleSequenceFlowElement= ruleSequenceFlowElement EOF
+            {
+             newCompositeNode(grammarAccess.getSequenceFlowElementRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleSequenceFlowElement=ruleSequenceFlowElement();
+
+            state._fsp--;
+
+             current =iv_ruleSequenceFlowElement; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSequenceFlowElement"
+
+
+    // $ANTLR start "ruleSequenceFlowElement"
+    // InternalTestgeneratorDSL.g:1364:1: ruleSequenceFlowElement returns [EObject current=null] : (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'SequenceFlow' (otherlv_4= 'with' otherlv_5= 'expression' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_expression_7_0= RULE_STRING ) ) )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleSequenceFlowElement() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token this_ASSOCIATION_6=null;
+        Token lv_expression_7_0=null;
+        Token this_DECLARATION_FINISHED_8=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1370:2: ( (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'SequenceFlow' (otherlv_4= 'with' otherlv_5= 'expression' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_expression_7_0= RULE_STRING ) ) )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1371:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'SequenceFlow' (otherlv_4= 'with' otherlv_5= 'expression' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_expression_7_0= RULE_STRING ) ) )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1371:2: (otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'SequenceFlow' (otherlv_4= 'with' otherlv_5= 'expression' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_expression_7_0= RULE_STRING ) ) )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1372:3: otherlv_0= 'FlowElement' ( (lv_name_1_0= RULE_ID ) ) this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'SequenceFlow' (otherlv_4= 'with' otherlv_5= 'expression' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_expression_7_0= RULE_STRING ) ) )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getSequenceFlowElementAccess().getFlowElementKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1376:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1377:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1377:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1378:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_12); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getSequenceFlowElementAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getSequenceFlowElementRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_32); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,37,FOLLOW_10); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getSequenceFlowElementAccess().getSequenceFlowKeyword_3());
+            		
+            // InternalTestgeneratorDSL.g:1402:3: (otherlv_4= 'with' otherlv_5= 'expression' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_expression_7_0= RULE_STRING ) ) )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
+
+            if ( (LA20_0==17) ) {
+                alt20=1;
+            }
+            switch (alt20) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1403:4: otherlv_4= 'with' otherlv_5= 'expression' this_ASSOCIATION_6= RULE_ASSOCIATION ( (lv_expression_7_0= RULE_STRING ) )
+                    {
+                    otherlv_4=(Token)match(input,17,FOLLOW_33); 
+
+                    				newLeafNode(otherlv_4, grammarAccess.getSequenceFlowElementAccess().getWithKeyword_4_0());
+                    			
+                    otherlv_5=(Token)match(input,38,FOLLOW_12); 
+
+                    				newLeafNode(otherlv_5, grammarAccess.getSequenceFlowElementAccess().getExpressionKeyword_4_1());
+                    			
+                    this_ASSOCIATION_6=(Token)match(input,RULE_ASSOCIATION,FOLLOW_7); 
+
+                    				newLeafNode(this_ASSOCIATION_6, grammarAccess.getSequenceFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2());
+                    			
+                    // InternalTestgeneratorDSL.g:1415:4: ( (lv_expression_7_0= RULE_STRING ) )
+                    // InternalTestgeneratorDSL.g:1416:5: (lv_expression_7_0= RULE_STRING )
+                    {
+                    // InternalTestgeneratorDSL.g:1416:5: (lv_expression_7_0= RULE_STRING )
+                    // InternalTestgeneratorDSL.g:1417:6: lv_expression_7_0= RULE_STRING
+                    {
+                    lv_expression_7_0=(Token)match(input,RULE_STRING,FOLLOW_17); 
+
+                    						newLeafNode(lv_expression_7_0, grammarAccess.getSequenceFlowElementAccess().getExpressionSTRINGTerminalRuleCall_4_3_0());
+                    					
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getSequenceFlowElementRule());
+                    						}
+                    						setWithLastConsumed(
+                    							current,
+                    							"expression",
+                    							lv_expression_7_0,
+                    							"org.eclipse.xtext.common.Terminals.STRING");
+                    					
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_8=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_8, grammarAccess.getSequenceFlowElementAccess().getDECLARATION_FINISHEDTerminalRuleCall_5());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSequenceFlowElement"
+
+
+    // $ANTLR start "entryRuleFlowElementReference"
+    // InternalTestgeneratorDSL.g:1442:1: entryRuleFlowElementReference returns [EObject current=null] : iv_ruleFlowElementReference= ruleFlowElementReference EOF ;
+    public final EObject entryRuleFlowElementReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFlowElementReference = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1442:61: (iv_ruleFlowElementReference= ruleFlowElementReference EOF )
+            // InternalTestgeneratorDSL.g:1443:2: iv_ruleFlowElementReference= ruleFlowElementReference EOF
+            {
+             newCompositeNode(grammarAccess.getFlowElementReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleFlowElementReference=ruleFlowElementReference();
+
+            state._fsp--;
+
+             current =iv_ruleFlowElementReference; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFlowElementReference"
+
+
+    // $ANTLR start "ruleFlowElementReference"
+    // InternalTestgeneratorDSL.g:1449:1: ruleFlowElementReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
+    public final EObject ruleFlowElementReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1455:2: ( ( (otherlv_0= RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:1456:2: ( (otherlv_0= RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:1456:2: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1457:3: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1457:3: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1458:4: otherlv_0= RULE_ID
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getFlowElementReferenceRule());
+            				}
+            			
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2); 
+
+            				newLeafNode(otherlv_0, grammarAccess.getFlowElementReferenceAccess().getRefFlowElementCrossReference_0());
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFlowElementReference"
+
+
+    // $ANTLR start "entryRuleDelegateServiceTaskReference"
+    // InternalTestgeneratorDSL.g:1472:1: entryRuleDelegateServiceTaskReference returns [EObject current=null] : iv_ruleDelegateServiceTaskReference= ruleDelegateServiceTaskReference EOF ;
+    public final EObject entryRuleDelegateServiceTaskReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDelegateServiceTaskReference = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1472:69: (iv_ruleDelegateServiceTaskReference= ruleDelegateServiceTaskReference EOF )
+            // InternalTestgeneratorDSL.g:1473:2: iv_ruleDelegateServiceTaskReference= ruleDelegateServiceTaskReference EOF
+            {
+             newCompositeNode(grammarAccess.getDelegateServiceTaskReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleDelegateServiceTaskReference=ruleDelegateServiceTaskReference();
+
+            state._fsp--;
+
+             current =iv_ruleDelegateServiceTaskReference; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDelegateServiceTaskReference"
+
+
+    // $ANTLR start "ruleDelegateServiceTaskReference"
+    // InternalTestgeneratorDSL.g:1479:1: ruleDelegateServiceTaskReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
+    public final EObject ruleDelegateServiceTaskReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1485:2: ( ( (otherlv_0= RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:1486:2: ( (otherlv_0= RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:1486:2: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1487:3: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1487:3: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1488:4: otherlv_0= RULE_ID
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getDelegateServiceTaskReferenceRule());
+            				}
+            			
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2); 
+
+            				newLeafNode(otherlv_0, grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementCrossReference_0());
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDelegateServiceTaskReference"
+
+
+    // $ANTLR start "entryRuleExternalTopic"
+    // InternalTestgeneratorDSL.g:1502:1: entryRuleExternalTopic returns [EObject current=null] : iv_ruleExternalTopic= ruleExternalTopic EOF ;
+    public final EObject entryRuleExternalTopic() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleExternalTopic = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1502:54: (iv_ruleExternalTopic= ruleExternalTopic EOF )
+            // InternalTestgeneratorDSL.g:1503:2: iv_ruleExternalTopic= ruleExternalTopic EOF
+            {
+             newCompositeNode(grammarAccess.getExternalTopicRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleExternalTopic=ruleExternalTopic();
+
+            state._fsp--;
+
+             current =iv_ruleExternalTopic; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleExternalTopic"
+
+
+    // $ANTLR start "ruleExternalTopic"
+    // InternalTestgeneratorDSL.g:1509:1: ruleExternalTopic returns [EObject current=null] : (otherlv_0= 'ExternalTopic' ( (lv_name_1_0= RULE_ID ) ) this_DECLARATION_FINISHED_2= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleExternalTopic() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token this_DECLARATION_FINISHED_2=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1515:2: ( (otherlv_0= 'ExternalTopic' ( (lv_name_1_0= RULE_ID ) ) this_DECLARATION_FINISHED_2= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1516:2: (otherlv_0= 'ExternalTopic' ( (lv_name_1_0= RULE_ID ) ) this_DECLARATION_FINISHED_2= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1516:2: (otherlv_0= 'ExternalTopic' ( (lv_name_1_0= RULE_ID ) ) this_DECLARATION_FINISHED_2= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1517:3: otherlv_0= 'ExternalTopic' ( (lv_name_1_0= RULE_ID ) ) this_DECLARATION_FINISHED_2= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,39,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getExternalTopicAccess().getExternalTopicKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1521:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1522:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1522:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1523:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_17); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getExternalTopicAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getExternalTopicRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            this_DECLARATION_FINISHED_2=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_2, grammarAccess.getExternalTopicAccess().getDECLARATION_FINISHEDTerminalRuleCall_2());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleExternalTopic"
+
+
+    // $ANTLR start "entryRuleExternalTopicReference"
+    // InternalTestgeneratorDSL.g:1547:1: entryRuleExternalTopicReference returns [EObject current=null] : iv_ruleExternalTopicReference= ruleExternalTopicReference EOF ;
+    public final EObject entryRuleExternalTopicReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleExternalTopicReference = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1547:63: (iv_ruleExternalTopicReference= ruleExternalTopicReference EOF )
+            // InternalTestgeneratorDSL.g:1548:2: iv_ruleExternalTopicReference= ruleExternalTopicReference EOF
+            {
+             newCompositeNode(grammarAccess.getExternalTopicReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleExternalTopicReference=ruleExternalTopicReference();
+
+            state._fsp--;
+
+             current =iv_ruleExternalTopicReference; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleExternalTopicReference"
+
+
+    // $ANTLR start "ruleExternalTopicReference"
+    // InternalTestgeneratorDSL.g:1554:1: ruleExternalTopicReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
+    public final EObject ruleExternalTopicReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1560:2: ( ( (otherlv_0= RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:1561:2: ( (otherlv_0= RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:1561:2: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1562:3: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1562:3: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1563:4: otherlv_0= RULE_ID
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getExternalTopicReferenceRule());
+            				}
+            			
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2); 
+
+            				newLeafNode(otherlv_0, grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicCrossReference_0());
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleExternalTopicReference"
+
+
+    // $ANTLR start "entryRuleVariable"
+    // InternalTestgeneratorDSL.g:1577:1: entryRuleVariable returns [EObject current=null] : iv_ruleVariable= ruleVariable EOF ;
+    public final EObject entryRuleVariable() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleVariable = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1577:49: (iv_ruleVariable= ruleVariable EOF )
+            // InternalTestgeneratorDSL.g:1578:2: iv_ruleVariable= ruleVariable EOF
+            {
+             newCompositeNode(grammarAccess.getVariableRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleVariable=ruleVariable();
+
+            state._fsp--;
+
+             current =iv_ruleVariable; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleVariable"
+
+
+    // $ANTLR start "ruleVariable"
+    // InternalTestgeneratorDSL.g:1584:1: ruleVariable returns [EObject current=null] : (this_StringVariable_0= ruleStringVariable | this_IntVariable_1= ruleIntVariable | this_BooleanVariable_2= ruleBooleanVariable ) ;
+    public final EObject ruleVariable() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_StringVariable_0 = null;
+
+        EObject this_IntVariable_1 = null;
+
+        EObject this_BooleanVariable_2 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1590:2: ( (this_StringVariable_0= ruleStringVariable | this_IntVariable_1= ruleIntVariable | this_BooleanVariable_2= ruleBooleanVariable ) )
+            // InternalTestgeneratorDSL.g:1591:2: (this_StringVariable_0= ruleStringVariable | this_IntVariable_1= ruleIntVariable | this_BooleanVariable_2= ruleBooleanVariable )
+            {
+            // InternalTestgeneratorDSL.g:1591:2: (this_StringVariable_0= ruleStringVariable | this_IntVariable_1= ruleIntVariable | this_BooleanVariable_2= ruleBooleanVariable )
+            int alt21=3;
+            switch ( input.LA(1) ) {
+            case 40:
+                {
+                alt21=1;
+                }
+                break;
+            case 42:
+                {
+                alt21=2;
+                }
+                break;
+            case 43:
+                {
+                alt21=3;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 21, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt21) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1592:3: this_StringVariable_0= ruleStringVariable
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableAccess().getStringVariableParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_StringVariable_0=ruleStringVariable();
+
+                    state._fsp--;
+
+
+                    			current = this_StringVariable_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:1601:3: this_IntVariable_1= ruleIntVariable
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableAccess().getIntVariableParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_IntVariable_1=ruleIntVariable();
+
+                    state._fsp--;
+
+
+                    			current = this_IntVariable_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:1610:3: this_BooleanVariable_2= ruleBooleanVariable
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableAccess().getBooleanVariableParserRuleCall_2());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_BooleanVariable_2=ruleBooleanVariable();
+
+                    state._fsp--;
+
+
+                    			current = this_BooleanVariable_2;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleVariable"
+
+
+    // $ANTLR start "entryRuleVariableReference"
+    // InternalTestgeneratorDSL.g:1622:1: entryRuleVariableReference returns [EObject current=null] : iv_ruleVariableReference= ruleVariableReference EOF ;
+    public final EObject entryRuleVariableReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleVariableReference = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1622:58: (iv_ruleVariableReference= ruleVariableReference EOF )
+            // InternalTestgeneratorDSL.g:1623:2: iv_ruleVariableReference= ruleVariableReference EOF
+            {
+             newCompositeNode(grammarAccess.getVariableReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleVariableReference=ruleVariableReference();
+
+            state._fsp--;
+
+             current =iv_ruleVariableReference; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleVariableReference"
+
+
+    // $ANTLR start "ruleVariableReference"
+    // InternalTestgeneratorDSL.g:1629:1: ruleVariableReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
+    public final EObject ruleVariableReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1635:2: ( ( (otherlv_0= RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:1636:2: ( (otherlv_0= RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:1636:2: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1637:3: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1637:3: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1638:4: otherlv_0= RULE_ID
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getVariableReferenceRule());
+            				}
+            			
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2); 
+
+            				newLeafNode(otherlv_0, grammarAccess.getVariableReferenceAccess().getRefVariableCrossReference_0());
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleVariableReference"
+
+
+    // $ANTLR start "entryRuleStringVariable"
+    // InternalTestgeneratorDSL.g:1652:1: entryRuleStringVariable returns [EObject current=null] : iv_ruleStringVariable= ruleStringVariable EOF ;
+    public final EObject entryRuleStringVariable() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStringVariable = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1652:55: (iv_ruleStringVariable= ruleStringVariable EOF )
+            // InternalTestgeneratorDSL.g:1653:2: iv_ruleStringVariable= ruleStringVariable EOF
+            {
+             newCompositeNode(grammarAccess.getStringVariableRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleStringVariable=ruleStringVariable();
+
+            state._fsp--;
+
+             current =iv_ruleStringVariable; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStringVariable"
+
+
+    // $ANTLR start "ruleStringVariable"
+    // InternalTestgeneratorDSL.g:1659:1: ruleStringVariable returns [EObject current=null] : (otherlv_0= 'String' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_STRING ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleStringVariable() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token this_ASSOCIATION_4=null;
+        Token this_LIST_OPEN_5=null;
+        Token lv_proposals_6_0=null;
+        Token this_SEPARATOR_7=null;
+        Token lv_proposals_8_0=null;
+        Token this_LIST_CLOSED_9=null;
+        Token this_DECLARATION_FINISHED_10=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1665:2: ( (otherlv_0= 'String' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_STRING ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1666:2: (otherlv_0= 'String' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_STRING ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1666:2: (otherlv_0= 'String' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_STRING ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1667:3: otherlv_0= 'String' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_STRING ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,40,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getStringVariableAccess().getStringKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1671:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1672:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1672:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1673:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_5); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getStringVariableAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringVariableRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,17,FOLLOW_34); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getStringVariableAccess().getWithKeyword_2());
+            		
+            otherlv_3=(Token)match(input,41,FOLLOW_12); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getStringVariableAccess().getProposalsKeyword_3());
+            		
+            this_ASSOCIATION_4=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+            			newLeafNode(this_ASSOCIATION_4, grammarAccess.getStringVariableAccess().getASSOCIATIONTerminalRuleCall_4());
+            		
+            this_LIST_OPEN_5=(Token)match(input,RULE_LIST_OPEN,FOLLOW_14); 
+
+            			newLeafNode(this_LIST_OPEN_5, grammarAccess.getStringVariableAccess().getLIST_OPENTerminalRuleCall_5());
+            		
+            // InternalTestgeneratorDSL.g:1705:3: ( ( (lv_proposals_6_0= RULE_STRING ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) ) )* )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==RULE_STRING) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1706:4: ( (lv_proposals_6_0= RULE_STRING ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:1706:4: ( (lv_proposals_6_0= RULE_STRING ) )
+                    // InternalTestgeneratorDSL.g:1707:5: (lv_proposals_6_0= RULE_STRING )
+                    {
+                    // InternalTestgeneratorDSL.g:1707:5: (lv_proposals_6_0= RULE_STRING )
+                    // InternalTestgeneratorDSL.g:1708:6: lv_proposals_6_0= RULE_STRING
+                    {
+                    lv_proposals_6_0=(Token)match(input,RULE_STRING,FOLLOW_15); 
+
+                    						newLeafNode(lv_proposals_6_0, grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_0_0());
+                    					
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getStringVariableRule());
+                    						}
+                    						addWithLastConsumed(
+                    							current,
+                    							"proposals",
+                    							lv_proposals_6_0,
+                    							"org.eclipse.xtext.common.Terminals.STRING");
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:1724:4: (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) ) )*
+                    loop22:
+                    do {
+                        int alt22=2;
+                        int LA22_0 = input.LA(1);
+
+                        if ( (LA22_0==RULE_SEPARATOR) ) {
+                            alt22=1;
+                        }
+
+
+                        switch (alt22) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:1725:5: this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_STRING ) )
+                    	    {
+                    	    this_SEPARATOR_7=(Token)match(input,RULE_SEPARATOR,FOLLOW_7); 
+
+                    	    					newLeafNode(this_SEPARATOR_7, grammarAccess.getStringVariableAccess().getSEPARATORTerminalRuleCall_6_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:1729:5: ( (lv_proposals_8_0= RULE_STRING ) )
+                    	    // InternalTestgeneratorDSL.g:1730:6: (lv_proposals_8_0= RULE_STRING )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:1730:6: (lv_proposals_8_0= RULE_STRING )
+                    	    // InternalTestgeneratorDSL.g:1731:7: lv_proposals_8_0= RULE_STRING
+                    	    {
+                    	    lv_proposals_8_0=(Token)match(input,RULE_STRING,FOLLOW_15); 
+
+                    	    							newLeafNode(lv_proposals_8_0, grammarAccess.getStringVariableAccess().getProposalsSTRINGTerminalRuleCall_6_1_1_0());
+                    	    						
+
+                    	    							if (current==null) {
+                    	    								current = createModelElement(grammarAccess.getStringVariableRule());
+                    	    							}
+                    	    							addWithLastConsumed(
+                    	    								current,
+                    	    								"proposals",
+                    	    								lv_proposals_8_0,
+                    	    								"org.eclipse.xtext.common.Terminals.STRING");
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop22;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_9=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+            			newLeafNode(this_LIST_CLOSED_9, grammarAccess.getStringVariableAccess().getLIST_CLOSEDTerminalRuleCall_7());
+            		
+            this_DECLARATION_FINISHED_10=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_10, grammarAccess.getStringVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStringVariable"
+
+
+    // $ANTLR start "entryRuleIntVariable"
+    // InternalTestgeneratorDSL.g:1761:1: entryRuleIntVariable returns [EObject current=null] : iv_ruleIntVariable= ruleIntVariable EOF ;
+    public final EObject entryRuleIntVariable() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleIntVariable = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1761:52: (iv_ruleIntVariable= ruleIntVariable EOF )
+            // InternalTestgeneratorDSL.g:1762:2: iv_ruleIntVariable= ruleIntVariable EOF
+            {
+             newCompositeNode(grammarAccess.getIntVariableRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleIntVariable=ruleIntVariable();
+
+            state._fsp--;
+
+             current =iv_ruleIntVariable; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleIntVariable"
+
+
+    // $ANTLR start "ruleIntVariable"
+    // InternalTestgeneratorDSL.g:1768:1: ruleIntVariable returns [EObject current=null] : (otherlv_0= 'Integer' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_INT ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleIntVariable() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token this_ASSOCIATION_4=null;
+        Token this_LIST_OPEN_5=null;
+        Token lv_proposals_6_0=null;
+        Token this_SEPARATOR_7=null;
+        Token lv_proposals_8_0=null;
+        Token this_LIST_CLOSED_9=null;
+        Token this_DECLARATION_FINISHED_10=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1774:2: ( (otherlv_0= 'Integer' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_INT ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1775:2: (otherlv_0= 'Integer' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_INT ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1775:2: (otherlv_0= 'Integer' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_INT ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1776:3: otherlv_0= 'Integer' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= RULE_INT ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,42,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getIntVariableAccess().getIntegerKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1780:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1781:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1781:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1782:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_5); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getIntVariableAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntVariableRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,17,FOLLOW_34); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getIntVariableAccess().getWithKeyword_2());
+            		
+            otherlv_3=(Token)match(input,41,FOLLOW_12); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getIntVariableAccess().getProposalsKeyword_3());
+            		
+            this_ASSOCIATION_4=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+            			newLeafNode(this_ASSOCIATION_4, grammarAccess.getIntVariableAccess().getASSOCIATIONTerminalRuleCall_4());
+            		
+            this_LIST_OPEN_5=(Token)match(input,RULE_LIST_OPEN,FOLLOW_35); 
+
+            			newLeafNode(this_LIST_OPEN_5, grammarAccess.getIntVariableAccess().getLIST_OPENTerminalRuleCall_5());
+            		
+            // InternalTestgeneratorDSL.g:1814:3: ( ( (lv_proposals_6_0= RULE_INT ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) ) )* )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==RULE_INT) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1815:4: ( (lv_proposals_6_0= RULE_INT ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:1815:4: ( (lv_proposals_6_0= RULE_INT ) )
+                    // InternalTestgeneratorDSL.g:1816:5: (lv_proposals_6_0= RULE_INT )
+                    {
+                    // InternalTestgeneratorDSL.g:1816:5: (lv_proposals_6_0= RULE_INT )
+                    // InternalTestgeneratorDSL.g:1817:6: lv_proposals_6_0= RULE_INT
+                    {
+                    lv_proposals_6_0=(Token)match(input,RULE_INT,FOLLOW_15); 
+
+                    						newLeafNode(lv_proposals_6_0, grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_0_0());
+                    					
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getIntVariableRule());
+                    						}
+                    						addWithLastConsumed(
+                    							current,
+                    							"proposals",
+                    							lv_proposals_6_0,
+                    							"org.eclipse.xtext.common.Terminals.INT");
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:1833:4: (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) ) )*
+                    loop24:
+                    do {
+                        int alt24=2;
+                        int LA24_0 = input.LA(1);
+
+                        if ( (LA24_0==RULE_SEPARATOR) ) {
+                            alt24=1;
+                        }
+
+
+                        switch (alt24) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:1834:5: this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= RULE_INT ) )
+                    	    {
+                    	    this_SEPARATOR_7=(Token)match(input,RULE_SEPARATOR,FOLLOW_36); 
+
+                    	    					newLeafNode(this_SEPARATOR_7, grammarAccess.getIntVariableAccess().getSEPARATORTerminalRuleCall_6_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:1838:5: ( (lv_proposals_8_0= RULE_INT ) )
+                    	    // InternalTestgeneratorDSL.g:1839:6: (lv_proposals_8_0= RULE_INT )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:1839:6: (lv_proposals_8_0= RULE_INT )
+                    	    // InternalTestgeneratorDSL.g:1840:7: lv_proposals_8_0= RULE_INT
+                    	    {
+                    	    lv_proposals_8_0=(Token)match(input,RULE_INT,FOLLOW_15); 
+
+                    	    							newLeafNode(lv_proposals_8_0, grammarAccess.getIntVariableAccess().getProposalsINTTerminalRuleCall_6_1_1_0());
+                    	    						
+
+                    	    							if (current==null) {
+                    	    								current = createModelElement(grammarAccess.getIntVariableRule());
+                    	    							}
+                    	    							addWithLastConsumed(
+                    	    								current,
+                    	    								"proposals",
+                    	    								lv_proposals_8_0,
+                    	    								"org.eclipse.xtext.common.Terminals.INT");
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop24;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_9=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+            			newLeafNode(this_LIST_CLOSED_9, grammarAccess.getIntVariableAccess().getLIST_CLOSEDTerminalRuleCall_7());
+            		
+            this_DECLARATION_FINISHED_10=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_10, grammarAccess.getIntVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIntVariable"
+
+
+    // $ANTLR start "entryRuleBooleanVariable"
+    // InternalTestgeneratorDSL.g:1870:1: entryRuleBooleanVariable returns [EObject current=null] : iv_ruleBooleanVariable= ruleBooleanVariable EOF ;
+    public final EObject entryRuleBooleanVariable() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBooleanVariable = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1870:56: (iv_ruleBooleanVariable= ruleBooleanVariable EOF )
+            // InternalTestgeneratorDSL.g:1871:2: iv_ruleBooleanVariable= ruleBooleanVariable EOF
+            {
+             newCompositeNode(grammarAccess.getBooleanVariableRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBooleanVariable=ruleBooleanVariable();
+
+            state._fsp--;
+
+             current =iv_ruleBooleanVariable; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBooleanVariable"
+
+
+    // $ANTLR start "ruleBooleanVariable"
+    // InternalTestgeneratorDSL.g:1877:1: ruleBooleanVariable returns [EObject current=null] : (otherlv_0= 'Boolean' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= ruleBoolean ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleBooleanVariable() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token this_ASSOCIATION_4=null;
+        Token this_LIST_OPEN_5=null;
+        Token this_SEPARATOR_7=null;
+        Token this_LIST_CLOSED_9=null;
+        Token this_DECLARATION_FINISHED_10=null;
+        Enumerator lv_proposals_6_0 = null;
+
+        Enumerator lv_proposals_8_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1883:2: ( (otherlv_0= 'Boolean' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= ruleBoolean ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1884:2: (otherlv_0= 'Boolean' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= ruleBoolean ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1884:2: (otherlv_0= 'Boolean' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= ruleBoolean ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1885:3: otherlv_0= 'Boolean' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'with' otherlv_3= 'proposals' this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_proposals_6_0= ruleBoolean ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,43,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getBooleanVariableAccess().getBooleanKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:1889:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:1890:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:1890:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:1891:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_5); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getBooleanVariableAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBooleanVariableRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,17,FOLLOW_34); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getBooleanVariableAccess().getWithKeyword_2());
+            		
+            otherlv_3=(Token)match(input,41,FOLLOW_12); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getBooleanVariableAccess().getProposalsKeyword_3());
+            		
+            this_ASSOCIATION_4=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+            			newLeafNode(this_ASSOCIATION_4, grammarAccess.getBooleanVariableAccess().getASSOCIATIONTerminalRuleCall_4());
+            		
+            this_LIST_OPEN_5=(Token)match(input,RULE_LIST_OPEN,FOLLOW_37); 
+
+            			newLeafNode(this_LIST_OPEN_5, grammarAccess.getBooleanVariableAccess().getLIST_OPENTerminalRuleCall_5());
+            		
+            // InternalTestgeneratorDSL.g:1923:3: ( ( (lv_proposals_6_0= ruleBoolean ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) ) )* )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( ((LA27_0>=72 && LA27_0<=73)) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:1924:4: ( (lv_proposals_6_0= ruleBoolean ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:1924:4: ( (lv_proposals_6_0= ruleBoolean ) )
+                    // InternalTestgeneratorDSL.g:1925:5: (lv_proposals_6_0= ruleBoolean )
+                    {
+                    // InternalTestgeneratorDSL.g:1925:5: (lv_proposals_6_0= ruleBoolean )
+                    // InternalTestgeneratorDSL.g:1926:6: lv_proposals_6_0= ruleBoolean
+                    {
+
+                    						newCompositeNode(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_0_0());
+                    					
+                    pushFollow(FOLLOW_15);
+                    lv_proposals_6_0=ruleBoolean();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getBooleanVariableRule());
+                    						}
+                    						add(
+                    							current,
+                    							"proposals",
+                    							lv_proposals_6_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:1943:4: (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) ) )*
+                    loop26:
+                    do {
+                        int alt26=2;
+                        int LA26_0 = input.LA(1);
+
+                        if ( (LA26_0==RULE_SEPARATOR) ) {
+                            alt26=1;
+                        }
+
+
+                        switch (alt26) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:1944:5: this_SEPARATOR_7= RULE_SEPARATOR ( (lv_proposals_8_0= ruleBoolean ) )
+                    	    {
+                    	    this_SEPARATOR_7=(Token)match(input,RULE_SEPARATOR,FOLLOW_38); 
+
+                    	    					newLeafNode(this_SEPARATOR_7, grammarAccess.getBooleanVariableAccess().getSEPARATORTerminalRuleCall_6_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:1948:5: ( (lv_proposals_8_0= ruleBoolean ) )
+                    	    // InternalTestgeneratorDSL.g:1949:6: (lv_proposals_8_0= ruleBoolean )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:1949:6: (lv_proposals_8_0= ruleBoolean )
+                    	    // InternalTestgeneratorDSL.g:1950:7: lv_proposals_8_0= ruleBoolean
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getBooleanVariableAccess().getProposalsBooleanEnumRuleCall_6_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_15);
+                    	    lv_proposals_8_0=ruleBoolean();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getBooleanVariableRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"proposals",
+                    	    								lv_proposals_8_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop26;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_9=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+            			newLeafNode(this_LIST_CLOSED_9, grammarAccess.getBooleanVariableAccess().getLIST_CLOSEDTerminalRuleCall_7());
+            		
+            this_DECLARATION_FINISHED_10=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_10, grammarAccess.getBooleanVariableAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBooleanVariable"
+
+
+    // $ANTLR start "entryRuleLoop"
+    // InternalTestgeneratorDSL.g:1981:1: entryRuleLoop returns [EObject current=null] : iv_ruleLoop= ruleLoop EOF ;
+    public final EObject entryRuleLoop() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleLoop = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:1981:45: (iv_ruleLoop= ruleLoop EOF )
+            // InternalTestgeneratorDSL.g:1982:2: iv_ruleLoop= ruleLoop EOF
+            {
+             newCompositeNode(grammarAccess.getLoopRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleLoop=ruleLoop();
+
+            state._fsp--;
+
+             current =iv_ruleLoop; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleLoop"
+
+
+    // $ANTLR start "ruleLoop"
+    // InternalTestgeneratorDSL.g:1988:1: ruleLoop returns [EObject current=null] : (otherlv_0= 'Loop' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'starts' otherlv_3= 'with' ( (lv_start_4_0= RULE_STRING ) ) otherlv_5= 'follows' otherlv_6= 'by' ( (lv_follower_7_0= RULE_STRING ) ) otherlv_8= 'ends' otherlv_9= 'with' ( (lv_end_10_0= RULE_STRING ) ) otherlv_11= 'has' otherlv_12= 'complexity' ( (lv_complexity_13_0= RULE_INT ) ) otherlv_14= 'passed' this_ASSOCIATION_15= RULE_ASSOCIATION this_LIST_OPEN_16= RULE_LIST_OPEN ( ( (lv_frequencies_17_0= RULE_INT ) ) (this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) ) )* )? this_LIST_CLOSED_20= RULE_LIST_CLOSED this_DECLARATION_FINISHED_21= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleLoop() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_start_4_0=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token lv_follower_7_0=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token lv_end_10_0=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token lv_complexity_13_0=null;
+        Token otherlv_14=null;
+        Token this_ASSOCIATION_15=null;
+        Token this_LIST_OPEN_16=null;
+        Token lv_frequencies_17_0=null;
+        Token this_SEPARATOR_18=null;
+        Token lv_frequencies_19_0=null;
+        Token this_LIST_CLOSED_20=null;
+        Token this_DECLARATION_FINISHED_21=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:1994:2: ( (otherlv_0= 'Loop' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'starts' otherlv_3= 'with' ( (lv_start_4_0= RULE_STRING ) ) otherlv_5= 'follows' otherlv_6= 'by' ( (lv_follower_7_0= RULE_STRING ) ) otherlv_8= 'ends' otherlv_9= 'with' ( (lv_end_10_0= RULE_STRING ) ) otherlv_11= 'has' otherlv_12= 'complexity' ( (lv_complexity_13_0= RULE_INT ) ) otherlv_14= 'passed' this_ASSOCIATION_15= RULE_ASSOCIATION this_LIST_OPEN_16= RULE_LIST_OPEN ( ( (lv_frequencies_17_0= RULE_INT ) ) (this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) ) )* )? this_LIST_CLOSED_20= RULE_LIST_CLOSED this_DECLARATION_FINISHED_21= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:1995:2: (otherlv_0= 'Loop' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'starts' otherlv_3= 'with' ( (lv_start_4_0= RULE_STRING ) ) otherlv_5= 'follows' otherlv_6= 'by' ( (lv_follower_7_0= RULE_STRING ) ) otherlv_8= 'ends' otherlv_9= 'with' ( (lv_end_10_0= RULE_STRING ) ) otherlv_11= 'has' otherlv_12= 'complexity' ( (lv_complexity_13_0= RULE_INT ) ) otherlv_14= 'passed' this_ASSOCIATION_15= RULE_ASSOCIATION this_LIST_OPEN_16= RULE_LIST_OPEN ( ( (lv_frequencies_17_0= RULE_INT ) ) (this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) ) )* )? this_LIST_CLOSED_20= RULE_LIST_CLOSED this_DECLARATION_FINISHED_21= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:1995:2: (otherlv_0= 'Loop' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'starts' otherlv_3= 'with' ( (lv_start_4_0= RULE_STRING ) ) otherlv_5= 'follows' otherlv_6= 'by' ( (lv_follower_7_0= RULE_STRING ) ) otherlv_8= 'ends' otherlv_9= 'with' ( (lv_end_10_0= RULE_STRING ) ) otherlv_11= 'has' otherlv_12= 'complexity' ( (lv_complexity_13_0= RULE_INT ) ) otherlv_14= 'passed' this_ASSOCIATION_15= RULE_ASSOCIATION this_LIST_OPEN_16= RULE_LIST_OPEN ( ( (lv_frequencies_17_0= RULE_INT ) ) (this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) ) )* )? this_LIST_CLOSED_20= RULE_LIST_CLOSED this_DECLARATION_FINISHED_21= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:1996:3: otherlv_0= 'Loop' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'starts' otherlv_3= 'with' ( (lv_start_4_0= RULE_STRING ) ) otherlv_5= 'follows' otherlv_6= 'by' ( (lv_follower_7_0= RULE_STRING ) ) otherlv_8= 'ends' otherlv_9= 'with' ( (lv_end_10_0= RULE_STRING ) ) otherlv_11= 'has' otherlv_12= 'complexity' ( (lv_complexity_13_0= RULE_INT ) ) otherlv_14= 'passed' this_ASSOCIATION_15= RULE_ASSOCIATION this_LIST_OPEN_16= RULE_LIST_OPEN ( ( (lv_frequencies_17_0= RULE_INT ) ) (this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) ) )* )? this_LIST_CLOSED_20= RULE_LIST_CLOSED this_DECLARATION_FINISHED_21= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,44,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getLoopAccess().getLoopKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:2000:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:2001:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:2001:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:2002:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_39); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getLoopAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getLoopRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,45,FOLLOW_5); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getLoopAccess().getStartsKeyword_2());
+            		
+            otherlv_3=(Token)match(input,17,FOLLOW_7); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getLoopAccess().getWithKeyword_3());
+            		
+            // InternalTestgeneratorDSL.g:2026:3: ( (lv_start_4_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:2027:4: (lv_start_4_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:2027:4: (lv_start_4_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:2028:5: lv_start_4_0= RULE_STRING
+            {
+            lv_start_4_0=(Token)match(input,RULE_STRING,FOLLOW_40); 
+
+            					newLeafNode(lv_start_4_0, grammarAccess.getLoopAccess().getStartSTRINGTerminalRuleCall_4_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getLoopRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"start",
+            						lv_start_4_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,46,FOLLOW_41); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getLoopAccess().getFollowsKeyword_5());
+            		
+            otherlv_6=(Token)match(input,47,FOLLOW_7); 
+
+            			newLeafNode(otherlv_6, grammarAccess.getLoopAccess().getByKeyword_6());
+            		
+            // InternalTestgeneratorDSL.g:2052:3: ( (lv_follower_7_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:2053:4: (lv_follower_7_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:2053:4: (lv_follower_7_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:2054:5: lv_follower_7_0= RULE_STRING
+            {
+            lv_follower_7_0=(Token)match(input,RULE_STRING,FOLLOW_42); 
+
+            					newLeafNode(lv_follower_7_0, grammarAccess.getLoopAccess().getFollowerSTRINGTerminalRuleCall_7_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getLoopRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"follower",
+            						lv_follower_7_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,48,FOLLOW_5); 
+
+            			newLeafNode(otherlv_8, grammarAccess.getLoopAccess().getEndsKeyword_8());
+            		
+            otherlv_9=(Token)match(input,17,FOLLOW_7); 
+
+            			newLeafNode(otherlv_9, grammarAccess.getLoopAccess().getWithKeyword_9());
+            		
+            // InternalTestgeneratorDSL.g:2078:3: ( (lv_end_10_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:2079:4: (lv_end_10_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:2079:4: (lv_end_10_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:2080:5: lv_end_10_0= RULE_STRING
+            {
+            lv_end_10_0=(Token)match(input,RULE_STRING,FOLLOW_43); 
+
+            					newLeafNode(lv_end_10_0, grammarAccess.getLoopAccess().getEndSTRINGTerminalRuleCall_10_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getLoopRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"end",
+            						lv_end_10_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            otherlv_11=(Token)match(input,49,FOLLOW_44); 
+
+            			newLeafNode(otherlv_11, grammarAccess.getLoopAccess().getHasKeyword_11());
+            		
+            otherlv_12=(Token)match(input,50,FOLLOW_36); 
+
+            			newLeafNode(otherlv_12, grammarAccess.getLoopAccess().getComplexityKeyword_12());
+            		
+            // InternalTestgeneratorDSL.g:2104:3: ( (lv_complexity_13_0= RULE_INT ) )
+            // InternalTestgeneratorDSL.g:2105:4: (lv_complexity_13_0= RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:2105:4: (lv_complexity_13_0= RULE_INT )
+            // InternalTestgeneratorDSL.g:2106:5: lv_complexity_13_0= RULE_INT
+            {
+            lv_complexity_13_0=(Token)match(input,RULE_INT,FOLLOW_45); 
+
+            					newLeafNode(lv_complexity_13_0, grammarAccess.getLoopAccess().getComplexityINTTerminalRuleCall_13_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getLoopRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"complexity",
+            						lv_complexity_13_0,
+            						"org.eclipse.xtext.common.Terminals.INT");
+            				
+
+            }
+
+
+            }
+
+            otherlv_14=(Token)match(input,51,FOLLOW_12); 
+
+            			newLeafNode(otherlv_14, grammarAccess.getLoopAccess().getPassedKeyword_14());
+            		
+            this_ASSOCIATION_15=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+            			newLeafNode(this_ASSOCIATION_15, grammarAccess.getLoopAccess().getASSOCIATIONTerminalRuleCall_15());
+            		
+            this_LIST_OPEN_16=(Token)match(input,RULE_LIST_OPEN,FOLLOW_35); 
+
+            			newLeafNode(this_LIST_OPEN_16, grammarAccess.getLoopAccess().getLIST_OPENTerminalRuleCall_16());
+            		
+            // InternalTestgeneratorDSL.g:2134:3: ( ( (lv_frequencies_17_0= RULE_INT ) ) (this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) ) )* )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0==RULE_INT) ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2135:4: ( (lv_frequencies_17_0= RULE_INT ) ) (this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:2135:4: ( (lv_frequencies_17_0= RULE_INT ) )
+                    // InternalTestgeneratorDSL.g:2136:5: (lv_frequencies_17_0= RULE_INT )
+                    {
+                    // InternalTestgeneratorDSL.g:2136:5: (lv_frequencies_17_0= RULE_INT )
+                    // InternalTestgeneratorDSL.g:2137:6: lv_frequencies_17_0= RULE_INT
+                    {
+                    lv_frequencies_17_0=(Token)match(input,RULE_INT,FOLLOW_15); 
+
+                    						newLeafNode(lv_frequencies_17_0, grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_0_0());
+                    					
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getLoopRule());
+                    						}
+                    						addWithLastConsumed(
+                    							current,
+                    							"frequencies",
+                    							lv_frequencies_17_0,
+                    							"org.eclipse.xtext.common.Terminals.INT");
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:2153:4: (this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) ) )*
+                    loop28:
+                    do {
+                        int alt28=2;
+                        int LA28_0 = input.LA(1);
+
+                        if ( (LA28_0==RULE_SEPARATOR) ) {
+                            alt28=1;
+                        }
+
+
+                        switch (alt28) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:2154:5: this_SEPARATOR_18= RULE_SEPARATOR ( (lv_frequencies_19_0= RULE_INT ) )
+                    	    {
+                    	    this_SEPARATOR_18=(Token)match(input,RULE_SEPARATOR,FOLLOW_36); 
+
+                    	    					newLeafNode(this_SEPARATOR_18, grammarAccess.getLoopAccess().getSEPARATORTerminalRuleCall_17_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:2158:5: ( (lv_frequencies_19_0= RULE_INT ) )
+                    	    // InternalTestgeneratorDSL.g:2159:6: (lv_frequencies_19_0= RULE_INT )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:2159:6: (lv_frequencies_19_0= RULE_INT )
+                    	    // InternalTestgeneratorDSL.g:2160:7: lv_frequencies_19_0= RULE_INT
+                    	    {
+                    	    lv_frequencies_19_0=(Token)match(input,RULE_INT,FOLLOW_15); 
+
+                    	    							newLeafNode(lv_frequencies_19_0, grammarAccess.getLoopAccess().getFrequenciesINTTerminalRuleCall_17_1_1_0());
+                    	    						
+
+                    	    							if (current==null) {
+                    	    								current = createModelElement(grammarAccess.getLoopRule());
+                    	    							}
+                    	    							addWithLastConsumed(
+                    	    								current,
+                    	    								"frequencies",
+                    	    								lv_frequencies_19_0,
+                    	    								"org.eclipse.xtext.common.Terminals.INT");
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop28;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_20=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+            			newLeafNode(this_LIST_CLOSED_20, grammarAccess.getLoopAccess().getLIST_CLOSEDTerminalRuleCall_18());
+            		
+            this_DECLARATION_FINISHED_21=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_21, grammarAccess.getLoopAccess().getDECLARATION_FINISHEDTerminalRuleCall_19());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleLoop"
+
+
+    // $ANTLR start "entryRuleFlow"
+    // InternalTestgeneratorDSL.g:2190:1: entryRuleFlow returns [EObject current=null] : iv_ruleFlow= ruleFlow EOF ;
+    public final EObject entryRuleFlow() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFlow = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2190:45: (iv_ruleFlow= ruleFlow EOF )
+            // InternalTestgeneratorDSL.g:2191:2: iv_ruleFlow= ruleFlow EOF
+            {
+             newCompositeNode(grammarAccess.getFlowRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleFlow=ruleFlow();
+
+            state._fsp--;
+
+             current =iv_ruleFlow; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFlow"
+
+
+    // $ANTLR start "ruleFlow"
+    // InternalTestgeneratorDSL.g:2197:1: ruleFlow returns [EObject current=null] : (otherlv_0= 'Flow' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_bpmnReference_3_0= ruleBPMNReference ) ) otherlv_4= 'with' otherlv_5= 'elements' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inclElements_8_0= ruleFlowElementReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED (otherlv_12= 'without' otherlv_13= 'elements' this_ASSOCIATION_14= RULE_ASSOCIATION this_LIST_OPEN_15= RULE_LIST_OPEN ( ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_19= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_20= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleFlow() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token this_ASSOCIATION_6=null;
+        Token this_LIST_OPEN_7=null;
+        Token this_SEPARATOR_9=null;
+        Token this_LIST_CLOSED_11=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token this_ASSOCIATION_14=null;
+        Token this_LIST_OPEN_15=null;
+        Token this_SEPARATOR_17=null;
+        Token this_LIST_CLOSED_19=null;
+        Token this_DECLARATION_FINISHED_20=null;
+        EObject lv_bpmnReference_3_0 = null;
+
+        EObject lv_inclElements_8_0 = null;
+
+        EObject lv_inclElements_10_0 = null;
+
+        EObject lv_exclElements_16_0 = null;
+
+        EObject lv_exclElements_18_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:2203:2: ( (otherlv_0= 'Flow' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_bpmnReference_3_0= ruleBPMNReference ) ) otherlv_4= 'with' otherlv_5= 'elements' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inclElements_8_0= ruleFlowElementReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED (otherlv_12= 'without' otherlv_13= 'elements' this_ASSOCIATION_14= RULE_ASSOCIATION this_LIST_OPEN_15= RULE_LIST_OPEN ( ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_19= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_20= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:2204:2: (otherlv_0= 'Flow' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_bpmnReference_3_0= ruleBPMNReference ) ) otherlv_4= 'with' otherlv_5= 'elements' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inclElements_8_0= ruleFlowElementReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED (otherlv_12= 'without' otherlv_13= 'elements' this_ASSOCIATION_14= RULE_ASSOCIATION this_LIST_OPEN_15= RULE_LIST_OPEN ( ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_19= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_20= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:2204:2: (otherlv_0= 'Flow' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_bpmnReference_3_0= ruleBPMNReference ) ) otherlv_4= 'with' otherlv_5= 'elements' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inclElements_8_0= ruleFlowElementReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED (otherlv_12= 'without' otherlv_13= 'elements' this_ASSOCIATION_14= RULE_ASSOCIATION this_LIST_OPEN_15= RULE_LIST_OPEN ( ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_19= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_20= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:2205:3: otherlv_0= 'Flow' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_bpmnReference_3_0= ruleBPMNReference ) ) otherlv_4= 'with' otherlv_5= 'elements' this_ASSOCIATION_6= RULE_ASSOCIATION this_LIST_OPEN_7= RULE_LIST_OPEN ( ( (lv_inclElements_8_0= ruleFlowElementReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_11= RULE_LIST_CLOSED (otherlv_12= 'without' otherlv_13= 'elements' this_ASSOCIATION_14= RULE_ASSOCIATION this_LIST_OPEN_15= RULE_LIST_OPEN ( ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_19= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_20= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,52,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getFlowAccess().getFlowKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:2209:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:2210:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:2210:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:2211:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_46); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getFlowAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getFlowRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,53,FOLLOW_4); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getFlowAccess().getForKeyword_2());
+            		
+            // InternalTestgeneratorDSL.g:2231:3: ( (lv_bpmnReference_3_0= ruleBPMNReference ) )
+            // InternalTestgeneratorDSL.g:2232:4: (lv_bpmnReference_3_0= ruleBPMNReference )
+            {
+            // InternalTestgeneratorDSL.g:2232:4: (lv_bpmnReference_3_0= ruleBPMNReference )
+            // InternalTestgeneratorDSL.g:2233:5: lv_bpmnReference_3_0= ruleBPMNReference
+            {
+
+            					newCompositeNode(grammarAccess.getFlowAccess().getBpmnReferenceBPMNReferenceParserRuleCall_3_0());
+            				
+            pushFollow(FOLLOW_5);
+            lv_bpmnReference_3_0=ruleBPMNReference();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getFlowRule());
+            					}
+            					set(
+            						current,
+            						"bpmnReference",
+            						lv_bpmnReference_3_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.BPMNReference");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,17,FOLLOW_47); 
+
+            			newLeafNode(otherlv_4, grammarAccess.getFlowAccess().getWithKeyword_4());
+            		
+            otherlv_5=(Token)match(input,54,FOLLOW_12); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getFlowAccess().getElementsKeyword_5());
+            		
+            this_ASSOCIATION_6=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+            			newLeafNode(this_ASSOCIATION_6, grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_6());
+            		
+            this_LIST_OPEN_7=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+            			newLeafNode(this_LIST_OPEN_7, grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_7());
+            		
+            // InternalTestgeneratorDSL.g:2266:3: ( ( (lv_inclElements_8_0= ruleFlowElementReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) ) )* )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
+
+            if ( (LA31_0==RULE_ID) ) {
+                alt31=1;
+            }
+            switch (alt31) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2267:4: ( (lv_inclElements_8_0= ruleFlowElementReference ) ) (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:2267:4: ( (lv_inclElements_8_0= ruleFlowElementReference ) )
+                    // InternalTestgeneratorDSL.g:2268:5: (lv_inclElements_8_0= ruleFlowElementReference )
+                    {
+                    // InternalTestgeneratorDSL.g:2268:5: (lv_inclElements_8_0= ruleFlowElementReference )
+                    // InternalTestgeneratorDSL.g:2269:6: lv_inclElements_8_0= ruleFlowElementReference
+                    {
+
+                    						newCompositeNode(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_0_0());
+                    					
+                    pushFollow(FOLLOW_15);
+                    lv_inclElements_8_0=ruleFlowElementReference();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getFlowRule());
+                    						}
+                    						add(
+                    							current,
+                    							"inclElements",
+                    							lv_inclElements_8_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:2286:4: (this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) ) )*
+                    loop30:
+                    do {
+                        int alt30=2;
+                        int LA30_0 = input.LA(1);
+
+                        if ( (LA30_0==RULE_SEPARATOR) ) {
+                            alt30=1;
+                        }
+
+
+                        switch (alt30) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:2287:5: this_SEPARATOR_9= RULE_SEPARATOR ( (lv_inclElements_10_0= ruleFlowElementReference ) )
+                    	    {
+                    	    this_SEPARATOR_9=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                    	    					newLeafNode(this_SEPARATOR_9, grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_8_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:2291:5: ( (lv_inclElements_10_0= ruleFlowElementReference ) )
+                    	    // InternalTestgeneratorDSL.g:2292:6: (lv_inclElements_10_0= ruleFlowElementReference )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:2292:6: (lv_inclElements_10_0= ruleFlowElementReference )
+                    	    // InternalTestgeneratorDSL.g:2293:7: lv_inclElements_10_0= ruleFlowElementReference
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getFlowAccess().getInclElementsFlowElementReferenceParserRuleCall_8_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_15);
+                    	    lv_inclElements_10_0=ruleFlowElementReference();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getFlowRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"inclElements",
+                    	    								lv_inclElements_10_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop30;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_11=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_48); 
+
+            			newLeafNode(this_LIST_CLOSED_11, grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_9());
+            		
+            // InternalTestgeneratorDSL.g:2316:3: (otherlv_12= 'without' otherlv_13= 'elements' this_ASSOCIATION_14= RULE_ASSOCIATION this_LIST_OPEN_15= RULE_LIST_OPEN ( ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_19= RULE_LIST_CLOSED )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
+
+            if ( (LA34_0==55) ) {
+                alt34=1;
+            }
+            switch (alt34) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2317:4: otherlv_12= 'without' otherlv_13= 'elements' this_ASSOCIATION_14= RULE_ASSOCIATION this_LIST_OPEN_15= RULE_LIST_OPEN ( ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )* )? this_LIST_CLOSED_19= RULE_LIST_CLOSED
+                    {
+                    otherlv_12=(Token)match(input,55,FOLLOW_47); 
+
+                    				newLeafNode(otherlv_12, grammarAccess.getFlowAccess().getWithoutKeyword_10_0());
+                    			
+                    otherlv_13=(Token)match(input,54,FOLLOW_12); 
+
+                    				newLeafNode(otherlv_13, grammarAccess.getFlowAccess().getElementsKeyword_10_1());
+                    			
+                    this_ASSOCIATION_14=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+                    				newLeafNode(this_ASSOCIATION_14, grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_10_2());
+                    			
+                    this_LIST_OPEN_15=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+                    				newLeafNode(this_LIST_OPEN_15, grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_10_3());
+                    			
+                    // InternalTestgeneratorDSL.g:2333:4: ( ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )* )?
+                    int alt33=2;
+                    int LA33_0 = input.LA(1);
+
+                    if ( (LA33_0==RULE_ID) ) {
+                        alt33=1;
+                    }
+                    switch (alt33) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:2334:5: ( (lv_exclElements_16_0= ruleFlowElementReference ) ) (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )*
+                            {
+                            // InternalTestgeneratorDSL.g:2334:5: ( (lv_exclElements_16_0= ruleFlowElementReference ) )
+                            // InternalTestgeneratorDSL.g:2335:6: (lv_exclElements_16_0= ruleFlowElementReference )
+                            {
+                            // InternalTestgeneratorDSL.g:2335:6: (lv_exclElements_16_0= ruleFlowElementReference )
+                            // InternalTestgeneratorDSL.g:2336:7: lv_exclElements_16_0= ruleFlowElementReference
+                            {
+
+                            							newCompositeNode(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_0_0());
+                            						
+                            pushFollow(FOLLOW_15);
+                            lv_exclElements_16_0=ruleFlowElementReference();
+
+                            state._fsp--;
+
+
+                            							if (current==null) {
+                            								current = createModelElementForParent(grammarAccess.getFlowRule());
+                            							}
+                            							add(
+                            								current,
+                            								"exclElements",
+                            								lv_exclElements_16_0,
+                            								"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+                            							afterParserOrEnumRuleCall();
+                            						
+
+                            }
+
+
+                            }
+
+                            // InternalTestgeneratorDSL.g:2353:5: (this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) ) )*
+                            loop32:
+                            do {
+                                int alt32=2;
+                                int LA32_0 = input.LA(1);
+
+                                if ( (LA32_0==RULE_SEPARATOR) ) {
+                                    alt32=1;
+                                }
+
+
+                                switch (alt32) {
+                            	case 1 :
+                            	    // InternalTestgeneratorDSL.g:2354:6: this_SEPARATOR_17= RULE_SEPARATOR ( (lv_exclElements_18_0= ruleFlowElementReference ) )
+                            	    {
+                            	    this_SEPARATOR_17=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                            	    						newLeafNode(this_SEPARATOR_17, grammarAccess.getFlowAccess().getSEPARATORTerminalRuleCall_10_4_1_0());
+                            	    					
+                            	    // InternalTestgeneratorDSL.g:2358:6: ( (lv_exclElements_18_0= ruleFlowElementReference ) )
+                            	    // InternalTestgeneratorDSL.g:2359:7: (lv_exclElements_18_0= ruleFlowElementReference )
+                            	    {
+                            	    // InternalTestgeneratorDSL.g:2359:7: (lv_exclElements_18_0= ruleFlowElementReference )
+                            	    // InternalTestgeneratorDSL.g:2360:8: lv_exclElements_18_0= ruleFlowElementReference
+                            	    {
+
+                            	    								newCompositeNode(grammarAccess.getFlowAccess().getExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0());
+                            	    							
+                            	    pushFollow(FOLLOW_15);
+                            	    lv_exclElements_18_0=ruleFlowElementReference();
+
+                            	    state._fsp--;
+
+
+                            	    								if (current==null) {
+                            	    									current = createModelElementForParent(grammarAccess.getFlowRule());
+                            	    								}
+                            	    								add(
+                            	    									current,
+                            	    									"exclElements",
+                            	    									lv_exclElements_18_0,
+                            	    									"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+                            	    								afterParserOrEnumRuleCall();
+                            	    							
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop32;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    this_LIST_CLOSED_19=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+                    				newLeafNode(this_LIST_CLOSED_19, grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_10_5());
+                    			
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_20=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_20, grammarAccess.getFlowAccess().getDECLARATION_FINISHEDTerminalRuleCall_11());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFlow"
+
+
+    // $ANTLR start "entryRuleFlowReference"
+    // InternalTestgeneratorDSL.g:2392:1: entryRuleFlowReference returns [EObject current=null] : iv_ruleFlowReference= ruleFlowReference EOF ;
+    public final EObject entryRuleFlowReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFlowReference = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2392:54: (iv_ruleFlowReference= ruleFlowReference EOF )
+            // InternalTestgeneratorDSL.g:2393:2: iv_ruleFlowReference= ruleFlowReference EOF
+            {
+             newCompositeNode(grammarAccess.getFlowReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleFlowReference=ruleFlowReference();
+
+            state._fsp--;
+
+             current =iv_ruleFlowReference; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFlowReference"
+
+
+    // $ANTLR start "ruleFlowReference"
+    // InternalTestgeneratorDSL.g:2399:1: ruleFlowReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
+    public final EObject ruleFlowReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:2405:2: ( ( (otherlv_0= RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:2406:2: ( (otherlv_0= RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:2406:2: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:2407:3: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:2407:3: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:2408:4: otherlv_0= RULE_ID
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getFlowReferenceRule());
+            				}
+            			
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2); 
+
+            				newLeafNode(otherlv_0, grammarAccess.getFlowReferenceAccess().getRefFlowCrossReference_0());
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFlowReference"
+
+
+    // $ANTLR start "entryRuleTest"
+    // InternalTestgeneratorDSL.g:2422:1: entryRuleTest returns [EObject current=null] : iv_ruleTest= ruleTest EOF ;
+    public final EObject entryRuleTest() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTest = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2422:45: (iv_ruleTest= ruleTest EOF )
+            // InternalTestgeneratorDSL.g:2423:2: iv_ruleTest= ruleTest EOF
+            {
+             newCompositeNode(grammarAccess.getTestRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleTest=ruleTest();
+
+            state._fsp--;
+
+             current =iv_ruleTest; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTest"
+
+
+    // $ANTLR start "ruleTest"
+    // InternalTestgeneratorDSL.g:2429:1: ruleTest returns [EObject current=null] : (otherlv_0= 'Test' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_flowReference_3_0= ruleFlowReference ) ) (otherlv_4= 'with' otherlv_5= 'priority' ( (lv_priority_6_0= RULE_INT ) ) )? ( ( (lv_declarations_7_0= ruleVariableDeclarations ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) ) )* )? ( (lv_endCheck_10_0= ruleEndChecks ) )? (otherlv_11= 'with' otherlv_12= 'mocks' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_19= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleTest() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token lv_priority_6_0=null;
+        Token this_SEPARATOR_8=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token this_ASSOCIATION_13=null;
+        Token this_LIST_OPEN_14=null;
+        Token this_SEPARATOR_16=null;
+        Token this_LIST_CLOSED_18=null;
+        Token this_DECLARATION_FINISHED_19=null;
+        EObject lv_flowReference_3_0 = null;
+
+        EObject lv_declarations_7_0 = null;
+
+        EObject lv_declarations_9_0 = null;
+
+        EObject lv_endCheck_10_0 = null;
+
+        EObject lv_mocks_15_0 = null;
+
+        EObject lv_mocks_17_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:2435:2: ( (otherlv_0= 'Test' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_flowReference_3_0= ruleFlowReference ) ) (otherlv_4= 'with' otherlv_5= 'priority' ( (lv_priority_6_0= RULE_INT ) ) )? ( ( (lv_declarations_7_0= ruleVariableDeclarations ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) ) )* )? ( (lv_endCheck_10_0= ruleEndChecks ) )? (otherlv_11= 'with' otherlv_12= 'mocks' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_19= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:2436:2: (otherlv_0= 'Test' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_flowReference_3_0= ruleFlowReference ) ) (otherlv_4= 'with' otherlv_5= 'priority' ( (lv_priority_6_0= RULE_INT ) ) )? ( ( (lv_declarations_7_0= ruleVariableDeclarations ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) ) )* )? ( (lv_endCheck_10_0= ruleEndChecks ) )? (otherlv_11= 'with' otherlv_12= 'mocks' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_19= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:2436:2: (otherlv_0= 'Test' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_flowReference_3_0= ruleFlowReference ) ) (otherlv_4= 'with' otherlv_5= 'priority' ( (lv_priority_6_0= RULE_INT ) ) )? ( ( (lv_declarations_7_0= ruleVariableDeclarations ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) ) )* )? ( (lv_endCheck_10_0= ruleEndChecks ) )? (otherlv_11= 'with' otherlv_12= 'mocks' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_19= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:2437:3: otherlv_0= 'Test' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_flowReference_3_0= ruleFlowReference ) ) (otherlv_4= 'with' otherlv_5= 'priority' ( (lv_priority_6_0= RULE_INT ) ) )? ( ( (lv_declarations_7_0= ruleVariableDeclarations ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) ) )* )? ( (lv_endCheck_10_0= ruleEndChecks ) )? (otherlv_11= 'with' otherlv_12= 'mocks' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )? this_DECLARATION_FINISHED_19= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,56,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getTestAccess().getTestKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:2441:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:2442:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:2442:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:2443:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_46); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getTestAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getTestRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,53,FOLLOW_4); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getTestAccess().getForKeyword_2());
+            		
+            // InternalTestgeneratorDSL.g:2463:3: ( (lv_flowReference_3_0= ruleFlowReference ) )
+            // InternalTestgeneratorDSL.g:2464:4: (lv_flowReference_3_0= ruleFlowReference )
+            {
+            // InternalTestgeneratorDSL.g:2464:4: (lv_flowReference_3_0= ruleFlowReference )
+            // InternalTestgeneratorDSL.g:2465:5: lv_flowReference_3_0= ruleFlowReference
+            {
+
+            					newCompositeNode(grammarAccess.getTestAccess().getFlowReferenceFlowReferenceParserRuleCall_3_0());
+            				
+            pushFollow(FOLLOW_10);
+            lv_flowReference_3_0=ruleFlowReference();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getTestRule());
+            					}
+            					set(
+            						current,
+            						"flowReference",
+            						lv_flowReference_3_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowReference");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:2482:3: (otherlv_4= 'with' otherlv_5= 'priority' ( (lv_priority_6_0= RULE_INT ) ) )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
+
+            if ( (LA35_0==17) ) {
+                int LA35_1 = input.LA(2);
+
+                if ( (LA35_1==57) ) {
+                    alt35=1;
+                }
+            }
+            switch (alt35) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2483:4: otherlv_4= 'with' otherlv_5= 'priority' ( (lv_priority_6_0= RULE_INT ) )
+                    {
+                    otherlv_4=(Token)match(input,17,FOLLOW_49); 
+
+                    				newLeafNode(otherlv_4, grammarAccess.getTestAccess().getWithKeyword_4_0());
+                    			
+                    otherlv_5=(Token)match(input,57,FOLLOW_36); 
+
+                    				newLeafNode(otherlv_5, grammarAccess.getTestAccess().getPriorityKeyword_4_1());
+                    			
+                    // InternalTestgeneratorDSL.g:2491:4: ( (lv_priority_6_0= RULE_INT ) )
+                    // InternalTestgeneratorDSL.g:2492:5: (lv_priority_6_0= RULE_INT )
+                    {
+                    // InternalTestgeneratorDSL.g:2492:5: (lv_priority_6_0= RULE_INT )
+                    // InternalTestgeneratorDSL.g:2493:6: lv_priority_6_0= RULE_INT
+                    {
+                    lv_priority_6_0=(Token)match(input,RULE_INT,FOLLOW_10); 
+
+                    						newLeafNode(lv_priority_6_0, grammarAccess.getTestAccess().getPriorityINTTerminalRuleCall_4_2_0());
+                    					
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getTestRule());
+                    						}
+                    						setWithLastConsumed(
+                    							current,
+                    							"priority",
+                    							lv_priority_6_0,
+                    							"org.eclipse.xtext.common.Terminals.INT");
+                    					
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTestgeneratorDSL.g:2510:3: ( ( (lv_declarations_7_0= ruleVariableDeclarations ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) ) )* )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
+
+            if ( (LA37_0==17) ) {
+                int LA37_1 = input.LA(2);
+
+                if ( (LA37_1==59) ) {
+                    alt37=1;
+                }
+            }
+            switch (alt37) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2511:4: ( (lv_declarations_7_0= ruleVariableDeclarations ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:2511:4: ( (lv_declarations_7_0= ruleVariableDeclarations ) )
+                    // InternalTestgeneratorDSL.g:2512:5: (lv_declarations_7_0= ruleVariableDeclarations )
+                    {
+                    // InternalTestgeneratorDSL.g:2512:5: (lv_declarations_7_0= ruleVariableDeclarations )
+                    // InternalTestgeneratorDSL.g:2513:6: lv_declarations_7_0= ruleVariableDeclarations
+                    {
+
+                    						newCompositeNode(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_0_0());
+                    					
+                    pushFollow(FOLLOW_50);
+                    lv_declarations_7_0=ruleVariableDeclarations();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getTestRule());
+                    						}
+                    						add(
+                    							current,
+                    							"declarations",
+                    							lv_declarations_7_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclarations");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:2530:4: (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) ) )*
+                    loop36:
+                    do {
+                        int alt36=2;
+                        int LA36_0 = input.LA(1);
+
+                        if ( (LA36_0==RULE_SEPARATOR) ) {
+                            alt36=1;
+                        }
+
+
+                        switch (alt36) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:2531:5: this_SEPARATOR_8= RULE_SEPARATOR ( (lv_declarations_9_0= ruleVariableDeclarations ) )
+                    	    {
+                    	    this_SEPARATOR_8=(Token)match(input,RULE_SEPARATOR,FOLLOW_5); 
+
+                    	    					newLeafNode(this_SEPARATOR_8, grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_5_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:2535:5: ( (lv_declarations_9_0= ruleVariableDeclarations ) )
+                    	    // InternalTestgeneratorDSL.g:2536:6: (lv_declarations_9_0= ruleVariableDeclarations )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:2536:6: (lv_declarations_9_0= ruleVariableDeclarations )
+                    	    // InternalTestgeneratorDSL.g:2537:7: lv_declarations_9_0= ruleVariableDeclarations
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getTestAccess().getDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_50);
+                    	    lv_declarations_9_0=ruleVariableDeclarations();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getTestRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"declarations",
+                    	    								lv_declarations_9_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclarations");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop36;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTestgeneratorDSL.g:2556:3: ( (lv_endCheck_10_0= ruleEndChecks ) )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
+
+            if ( (LA38_0==17) ) {
+                int LA38_1 = input.LA(2);
+
+                if ( (LA38_1==60) ) {
+                    alt38=1;
+                }
+            }
+            switch (alt38) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2557:4: (lv_endCheck_10_0= ruleEndChecks )
+                    {
+                    // InternalTestgeneratorDSL.g:2557:4: (lv_endCheck_10_0= ruleEndChecks )
+                    // InternalTestgeneratorDSL.g:2558:5: lv_endCheck_10_0= ruleEndChecks
+                    {
+
+                    					newCompositeNode(grammarAccess.getTestAccess().getEndCheckEndChecksParserRuleCall_6_0());
+                    				
+                    pushFollow(FOLLOW_10);
+                    lv_endCheck_10_0=ruleEndChecks();
+
+                    state._fsp--;
+
+
+                    					if (current==null) {
+                    						current = createModelElementForParent(grammarAccess.getTestRule());
+                    					}
+                    					set(
+                    						current,
+                    						"endCheck",
+                    						lv_endCheck_10_0,
+                    						"de.fhmuenster.masterthesis.TestgeneratorDSL.EndChecks");
+                    					afterParserOrEnumRuleCall();
+                    				
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // InternalTestgeneratorDSL.g:2575:3: (otherlv_11= 'with' otherlv_12= 'mocks' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED )?
+            int alt41=2;
+            int LA41_0 = input.LA(1);
+
+            if ( (LA41_0==17) ) {
+                alt41=1;
+            }
+            switch (alt41) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2576:4: otherlv_11= 'with' otherlv_12= 'mocks' this_ASSOCIATION_13= RULE_ASSOCIATION this_LIST_OPEN_14= RULE_LIST_OPEN ( ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )* )? this_LIST_CLOSED_18= RULE_LIST_CLOSED
+                    {
+                    otherlv_11=(Token)match(input,17,FOLLOW_51); 
+
+                    				newLeafNode(otherlv_11, grammarAccess.getTestAccess().getWithKeyword_7_0());
+                    			
+                    otherlv_12=(Token)match(input,58,FOLLOW_12); 
+
+                    				newLeafNode(otherlv_12, grammarAccess.getTestAccess().getMocksKeyword_7_1());
+                    			
+                    this_ASSOCIATION_13=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+                    				newLeafNode(this_ASSOCIATION_13, grammarAccess.getTestAccess().getASSOCIATIONTerminalRuleCall_7_2());
+                    			
+                    this_LIST_OPEN_14=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+                    				newLeafNode(this_LIST_OPEN_14, grammarAccess.getTestAccess().getLIST_OPENTerminalRuleCall_7_3());
+                    			
+                    // InternalTestgeneratorDSL.g:2592:4: ( ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )* )?
+                    int alt40=2;
+                    int LA40_0 = input.LA(1);
+
+                    if ( (LA40_0==RULE_ID) ) {
+                        alt40=1;
+                    }
+                    switch (alt40) {
+                        case 1 :
+                            // InternalTestgeneratorDSL.g:2593:5: ( (lv_mocks_15_0= ruleMockReference ) ) (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )*
+                            {
+                            // InternalTestgeneratorDSL.g:2593:5: ( (lv_mocks_15_0= ruleMockReference ) )
+                            // InternalTestgeneratorDSL.g:2594:6: (lv_mocks_15_0= ruleMockReference )
+                            {
+                            // InternalTestgeneratorDSL.g:2594:6: (lv_mocks_15_0= ruleMockReference )
+                            // InternalTestgeneratorDSL.g:2595:7: lv_mocks_15_0= ruleMockReference
+                            {
+
+                            							newCompositeNode(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_0_0());
+                            						
+                            pushFollow(FOLLOW_15);
+                            lv_mocks_15_0=ruleMockReference();
+
+                            state._fsp--;
+
+
+                            							if (current==null) {
+                            								current = createModelElementForParent(grammarAccess.getTestRule());
+                            							}
+                            							add(
+                            								current,
+                            								"mocks",
+                            								lv_mocks_15_0,
+                            								"de.fhmuenster.masterthesis.TestgeneratorDSL.MockReference");
+                            							afterParserOrEnumRuleCall();
+                            						
+
+                            }
+
+
+                            }
+
+                            // InternalTestgeneratorDSL.g:2612:5: (this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) ) )*
+                            loop39:
+                            do {
+                                int alt39=2;
+                                int LA39_0 = input.LA(1);
+
+                                if ( (LA39_0==RULE_SEPARATOR) ) {
+                                    alt39=1;
+                                }
+
+
+                                switch (alt39) {
+                            	case 1 :
+                            	    // InternalTestgeneratorDSL.g:2613:6: this_SEPARATOR_16= RULE_SEPARATOR ( (lv_mocks_17_0= ruleMockReference ) )
+                            	    {
+                            	    this_SEPARATOR_16=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                            	    						newLeafNode(this_SEPARATOR_16, grammarAccess.getTestAccess().getSEPARATORTerminalRuleCall_7_4_1_0());
+                            	    					
+                            	    // InternalTestgeneratorDSL.g:2617:6: ( (lv_mocks_17_0= ruleMockReference ) )
+                            	    // InternalTestgeneratorDSL.g:2618:7: (lv_mocks_17_0= ruleMockReference )
+                            	    {
+                            	    // InternalTestgeneratorDSL.g:2618:7: (lv_mocks_17_0= ruleMockReference )
+                            	    // InternalTestgeneratorDSL.g:2619:8: lv_mocks_17_0= ruleMockReference
+                            	    {
+
+                            	    								newCompositeNode(grammarAccess.getTestAccess().getMocksMockReferenceParserRuleCall_7_4_1_1_0());
+                            	    							
+                            	    pushFollow(FOLLOW_15);
+                            	    lv_mocks_17_0=ruleMockReference();
+
+                            	    state._fsp--;
+
+
+                            	    								if (current==null) {
+                            	    									current = createModelElementForParent(grammarAccess.getTestRule());
+                            	    								}
+                            	    								add(
+                            	    									current,
+                            	    									"mocks",
+                            	    									lv_mocks_17_0,
+                            	    									"de.fhmuenster.masterthesis.TestgeneratorDSL.MockReference");
+                            	    								afterParserOrEnumRuleCall();
+                            	    							
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop39;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    this_LIST_CLOSED_18=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_17); 
+
+                    				newLeafNode(this_LIST_CLOSED_18, grammarAccess.getTestAccess().getLIST_CLOSEDTerminalRuleCall_7_5());
+                    			
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_19=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_19, grammarAccess.getTestAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTest"
+
+
+    // $ANTLR start "entryRuleVariableDeclarations"
+    // InternalTestgeneratorDSL.g:2651:1: entryRuleVariableDeclarations returns [EObject current=null] : iv_ruleVariableDeclarations= ruleVariableDeclarations EOF ;
+    public final EObject entryRuleVariableDeclarations() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleVariableDeclarations = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2651:61: (iv_ruleVariableDeclarations= ruleVariableDeclarations EOF )
+            // InternalTestgeneratorDSL.g:2652:2: iv_ruleVariableDeclarations= ruleVariableDeclarations EOF
+            {
+             newCompositeNode(grammarAccess.getVariableDeclarationsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleVariableDeclarations=ruleVariableDeclarations();
+
+            state._fsp--;
+
+             current =iv_ruleVariableDeclarations; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleVariableDeclarations"
+
+
+    // $ANTLR start "ruleVariableDeclarations"
+    // InternalTestgeneratorDSL.g:2658:1: ruleVariableDeclarations returns [EObject current=null] : (otherlv_0= 'with' otherlv_1= 'variables' otherlv_2= 'for' ( (lv_taskReference_3_0= ruleFlowElementReference ) ) this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_variables_6_0= ruleVariableDeclaration ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED ) ;
+    public final EObject ruleVariableDeclarations() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token this_ASSOCIATION_4=null;
+        Token this_LIST_OPEN_5=null;
+        Token this_SEPARATOR_7=null;
+        Token this_LIST_CLOSED_9=null;
+        EObject lv_taskReference_3_0 = null;
+
+        EObject lv_variables_6_0 = null;
+
+        EObject lv_variables_8_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:2664:2: ( (otherlv_0= 'with' otherlv_1= 'variables' otherlv_2= 'for' ( (lv_taskReference_3_0= ruleFlowElementReference ) ) this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_variables_6_0= ruleVariableDeclaration ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:2665:2: (otherlv_0= 'with' otherlv_1= 'variables' otherlv_2= 'for' ( (lv_taskReference_3_0= ruleFlowElementReference ) ) this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_variables_6_0= ruleVariableDeclaration ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:2665:2: (otherlv_0= 'with' otherlv_1= 'variables' otherlv_2= 'for' ( (lv_taskReference_3_0= ruleFlowElementReference ) ) this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_variables_6_0= ruleVariableDeclaration ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:2666:3: otherlv_0= 'with' otherlv_1= 'variables' otherlv_2= 'for' ( (lv_taskReference_3_0= ruleFlowElementReference ) ) this_ASSOCIATION_4= RULE_ASSOCIATION this_LIST_OPEN_5= RULE_LIST_OPEN ( ( (lv_variables_6_0= ruleVariableDeclaration ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_9= RULE_LIST_CLOSED
+            {
+            otherlv_0=(Token)match(input,17,FOLLOW_52); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getVariableDeclarationsAccess().getWithKeyword_0());
+            		
+            otherlv_1=(Token)match(input,59,FOLLOW_46); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getVariableDeclarationsAccess().getVariablesKeyword_1());
+            		
+            otherlv_2=(Token)match(input,53,FOLLOW_4); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getVariableDeclarationsAccess().getForKeyword_2());
+            		
+            // InternalTestgeneratorDSL.g:2678:3: ( (lv_taskReference_3_0= ruleFlowElementReference ) )
+            // InternalTestgeneratorDSL.g:2679:4: (lv_taskReference_3_0= ruleFlowElementReference )
+            {
+            // InternalTestgeneratorDSL.g:2679:4: (lv_taskReference_3_0= ruleFlowElementReference )
+            // InternalTestgeneratorDSL.g:2680:5: lv_taskReference_3_0= ruleFlowElementReference
+            {
+
+            					newCompositeNode(grammarAccess.getVariableDeclarationsAccess().getTaskReferenceFlowElementReferenceParserRuleCall_3_0());
+            				
+            pushFollow(FOLLOW_12);
+            lv_taskReference_3_0=ruleFlowElementReference();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getVariableDeclarationsRule());
+            					}
+            					set(
+            						current,
+            						"taskReference",
+            						lv_taskReference_3_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            this_ASSOCIATION_4=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+            			newLeafNode(this_ASSOCIATION_4, grammarAccess.getVariableDeclarationsAccess().getASSOCIATIONTerminalRuleCall_4());
+            		
+            this_LIST_OPEN_5=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+            			newLeafNode(this_LIST_OPEN_5, grammarAccess.getVariableDeclarationsAccess().getLIST_OPENTerminalRuleCall_5());
+            		
+            // InternalTestgeneratorDSL.g:2705:3: ( ( (lv_variables_6_0= ruleVariableDeclaration ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) ) )* )?
+            int alt43=2;
+            int LA43_0 = input.LA(1);
+
+            if ( (LA43_0==RULE_ID) ) {
+                alt43=1;
+            }
+            switch (alt43) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2706:4: ( (lv_variables_6_0= ruleVariableDeclaration ) ) (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:2706:4: ( (lv_variables_6_0= ruleVariableDeclaration ) )
+                    // InternalTestgeneratorDSL.g:2707:5: (lv_variables_6_0= ruleVariableDeclaration )
+                    {
+                    // InternalTestgeneratorDSL.g:2707:5: (lv_variables_6_0= ruleVariableDeclaration )
+                    // InternalTestgeneratorDSL.g:2708:6: lv_variables_6_0= ruleVariableDeclaration
+                    {
+
+                    						newCompositeNode(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_0_0());
+                    					
+                    pushFollow(FOLLOW_15);
+                    lv_variables_6_0=ruleVariableDeclaration();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getVariableDeclarationsRule());
+                    						}
+                    						add(
+                    							current,
+                    							"variables",
+                    							lv_variables_6_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:2725:4: (this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) ) )*
+                    loop42:
+                    do {
+                        int alt42=2;
+                        int LA42_0 = input.LA(1);
+
+                        if ( (LA42_0==RULE_SEPARATOR) ) {
+                            alt42=1;
+                        }
+
+
+                        switch (alt42) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:2726:5: this_SEPARATOR_7= RULE_SEPARATOR ( (lv_variables_8_0= ruleVariableDeclaration ) )
+                    	    {
+                    	    this_SEPARATOR_7=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                    	    					newLeafNode(this_SEPARATOR_7, grammarAccess.getVariableDeclarationsAccess().getSEPARATORTerminalRuleCall_6_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:2730:5: ( (lv_variables_8_0= ruleVariableDeclaration ) )
+                    	    // InternalTestgeneratorDSL.g:2731:6: (lv_variables_8_0= ruleVariableDeclaration )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:2731:6: (lv_variables_8_0= ruleVariableDeclaration )
+                    	    // InternalTestgeneratorDSL.g:2732:7: lv_variables_8_0= ruleVariableDeclaration
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getVariableDeclarationsAccess().getVariablesVariableDeclarationParserRuleCall_6_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_15);
+                    	    lv_variables_8_0=ruleVariableDeclaration();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getVariableDeclarationsRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"variables",
+                    	    								lv_variables_8_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop42;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_9=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+
+            			newLeafNode(this_LIST_CLOSED_9, grammarAccess.getVariableDeclarationsAccess().getLIST_CLOSEDTerminalRuleCall_7());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleVariableDeclarations"
+
+
+    // $ANTLR start "entryRuleEndChecks"
+    // InternalTestgeneratorDSL.g:2759:1: entryRuleEndChecks returns [EObject current=null] : iv_ruleEndChecks= ruleEndChecks EOF ;
+    public final EObject entryRuleEndChecks() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleEndChecks = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2759:50: (iv_ruleEndChecks= ruleEndChecks EOF )
+            // InternalTestgeneratorDSL.g:2760:2: iv_ruleEndChecks= ruleEndChecks EOF
+            {
+             newCompositeNode(grammarAccess.getEndChecksRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleEndChecks=ruleEndChecks();
+
+            state._fsp--;
+
+             current =iv_ruleEndChecks; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleEndChecks"
+
+
+    // $ANTLR start "ruleEndChecks"
+    // InternalTestgeneratorDSL.g:2766:1: ruleEndChecks returns [EObject current=null] : (otherlv_0= 'with' otherlv_1= 'check' this_ASSOCIATION_2= RULE_ASSOCIATION this_LIST_OPEN_3= RULE_LIST_OPEN ( ( (lv_endChecks_4_0= ruleEndCheck ) ) (this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) ) )* )? this_LIST_CLOSED_7= RULE_LIST_CLOSED ) ;
+    public final EObject ruleEndChecks() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token this_ASSOCIATION_2=null;
+        Token this_LIST_OPEN_3=null;
+        Token this_SEPARATOR_5=null;
+        Token this_LIST_CLOSED_7=null;
+        EObject lv_endChecks_4_0 = null;
+
+        EObject lv_endChecks_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:2772:2: ( (otherlv_0= 'with' otherlv_1= 'check' this_ASSOCIATION_2= RULE_ASSOCIATION this_LIST_OPEN_3= RULE_LIST_OPEN ( ( (lv_endChecks_4_0= ruleEndCheck ) ) (this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) ) )* )? this_LIST_CLOSED_7= RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:2773:2: (otherlv_0= 'with' otherlv_1= 'check' this_ASSOCIATION_2= RULE_ASSOCIATION this_LIST_OPEN_3= RULE_LIST_OPEN ( ( (lv_endChecks_4_0= ruleEndCheck ) ) (this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) ) )* )? this_LIST_CLOSED_7= RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:2773:2: (otherlv_0= 'with' otherlv_1= 'check' this_ASSOCIATION_2= RULE_ASSOCIATION this_LIST_OPEN_3= RULE_LIST_OPEN ( ( (lv_endChecks_4_0= ruleEndCheck ) ) (this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) ) )* )? this_LIST_CLOSED_7= RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:2774:3: otherlv_0= 'with' otherlv_1= 'check' this_ASSOCIATION_2= RULE_ASSOCIATION this_LIST_OPEN_3= RULE_LIST_OPEN ( ( (lv_endChecks_4_0= ruleEndCheck ) ) (this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) ) )* )? this_LIST_CLOSED_7= RULE_LIST_CLOSED
+            {
+            otherlv_0=(Token)match(input,17,FOLLOW_53); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getEndChecksAccess().getWithKeyword_0());
+            		
+            otherlv_1=(Token)match(input,60,FOLLOW_12); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getEndChecksAccess().getCheckKeyword_1());
+            		
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_13); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getEndChecksAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            this_LIST_OPEN_3=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+            			newLeafNode(this_LIST_OPEN_3, grammarAccess.getEndChecksAccess().getLIST_OPENTerminalRuleCall_3());
+            		
+            // InternalTestgeneratorDSL.g:2790:3: ( ( (lv_endChecks_4_0= ruleEndCheck ) ) (this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) ) )* )?
+            int alt45=2;
+            int LA45_0 = input.LA(1);
+
+            if ( (LA45_0==RULE_ID) ) {
+                alt45=1;
+            }
+            switch (alt45) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2791:4: ( (lv_endChecks_4_0= ruleEndCheck ) ) (this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:2791:4: ( (lv_endChecks_4_0= ruleEndCheck ) )
+                    // InternalTestgeneratorDSL.g:2792:5: (lv_endChecks_4_0= ruleEndCheck )
+                    {
+                    // InternalTestgeneratorDSL.g:2792:5: (lv_endChecks_4_0= ruleEndCheck )
+                    // InternalTestgeneratorDSL.g:2793:6: lv_endChecks_4_0= ruleEndCheck
+                    {
+
+                    						newCompositeNode(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_0_0());
+                    					
+                    pushFollow(FOLLOW_15);
+                    lv_endChecks_4_0=ruleEndCheck();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getEndChecksRule());
+                    						}
+                    						add(
+                    							current,
+                    							"endChecks",
+                    							lv_endChecks_4_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.EndCheck");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:2810:4: (this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) ) )*
+                    loop44:
+                    do {
+                        int alt44=2;
+                        int LA44_0 = input.LA(1);
+
+                        if ( (LA44_0==RULE_SEPARATOR) ) {
+                            alt44=1;
+                        }
+
+
+                        switch (alt44) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:2811:5: this_SEPARATOR_5= RULE_SEPARATOR ( (lv_endChecks_6_0= ruleEndCheck ) )
+                    	    {
+                    	    this_SEPARATOR_5=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                    	    					newLeafNode(this_SEPARATOR_5, grammarAccess.getEndChecksAccess().getSEPARATORTerminalRuleCall_4_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:2815:5: ( (lv_endChecks_6_0= ruleEndCheck ) )
+                    	    // InternalTestgeneratorDSL.g:2816:6: (lv_endChecks_6_0= ruleEndCheck )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:2816:6: (lv_endChecks_6_0= ruleEndCheck )
+                    	    // InternalTestgeneratorDSL.g:2817:7: lv_endChecks_6_0= ruleEndCheck
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getEndChecksAccess().getEndChecksEndCheckParserRuleCall_4_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_15);
+                    	    lv_endChecks_6_0=ruleEndCheck();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getEndChecksRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"endChecks",
+                    	    								lv_endChecks_6_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.EndCheck");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop44;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_7=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+
+            			newLeafNode(this_LIST_CLOSED_7, grammarAccess.getEndChecksAccess().getLIST_CLOSEDTerminalRuleCall_5());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleEndChecks"
+
+
+    // $ANTLR start "entryRuleVariableDeclaration"
+    // InternalTestgeneratorDSL.g:2844:1: entryRuleVariableDeclaration returns [EObject current=null] : iv_ruleVariableDeclaration= ruleVariableDeclaration EOF ;
+    public final EObject entryRuleVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleVariableDeclaration = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2844:60: (iv_ruleVariableDeclaration= ruleVariableDeclaration EOF )
+            // InternalTestgeneratorDSL.g:2845:2: iv_ruleVariableDeclaration= ruleVariableDeclaration EOF
+            {
+             newCompositeNode(grammarAccess.getVariableDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleVariableDeclaration=ruleVariableDeclaration();
+
+            state._fsp--;
+
+             current =iv_ruleVariableDeclaration; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleVariableDeclaration"
+
+
+    // $ANTLR start "ruleVariableDeclaration"
+    // InternalTestgeneratorDSL.g:2851:1: ruleVariableDeclaration returns [EObject current=null] : (this_StringVariableDeclaration_0= ruleStringVariableDeclaration | this_IntVariableDeclaration_1= ruleIntVariableDeclaration | this_BooleanVariableDeclaration_2= ruleBooleanVariableDeclaration ) ;
+    public final EObject ruleVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_StringVariableDeclaration_0 = null;
+
+        EObject this_IntVariableDeclaration_1 = null;
+
+        EObject this_BooleanVariableDeclaration_2 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:2857:2: ( (this_StringVariableDeclaration_0= ruleStringVariableDeclaration | this_IntVariableDeclaration_1= ruleIntVariableDeclaration | this_BooleanVariableDeclaration_2= ruleBooleanVariableDeclaration ) )
+            // InternalTestgeneratorDSL.g:2858:2: (this_StringVariableDeclaration_0= ruleStringVariableDeclaration | this_IntVariableDeclaration_1= ruleIntVariableDeclaration | this_BooleanVariableDeclaration_2= ruleBooleanVariableDeclaration )
+            {
+            // InternalTestgeneratorDSL.g:2858:2: (this_StringVariableDeclaration_0= ruleStringVariableDeclaration | this_IntVariableDeclaration_1= ruleIntVariableDeclaration | this_BooleanVariableDeclaration_2= ruleBooleanVariableDeclaration )
+            int alt46=3;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==RULE_ID) ) {
+                int LA46_1 = input.LA(2);
+
+                if ( (LA46_1==61) ) {
+                    switch ( input.LA(3) ) {
+                    case RULE_STRING:
+                        {
+                        alt46=1;
+                        }
+                        break;
+                    case RULE_INT:
+                        {
+                        alt46=2;
+                        }
+                        break;
+                    case 72:
+                    case 73:
+                        {
+                        alt46=3;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 46, 2, input);
+
+                        throw nvae;
+                    }
+
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 46, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 46, 0, input);
+
+                throw nvae;
+            }
+            switch (alt46) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:2859:3: this_StringVariableDeclaration_0= ruleStringVariableDeclaration
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableDeclarationAccess().getStringVariableDeclarationParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_StringVariableDeclaration_0=ruleStringVariableDeclaration();
+
+                    state._fsp--;
+
+
+                    			current = this_StringVariableDeclaration_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:2868:3: this_IntVariableDeclaration_1= ruleIntVariableDeclaration
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableDeclarationAccess().getIntVariableDeclarationParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_IntVariableDeclaration_1=ruleIntVariableDeclaration();
+
+                    state._fsp--;
+
+
+                    			current = this_IntVariableDeclaration_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:2877:3: this_BooleanVariableDeclaration_2= ruleBooleanVariableDeclaration
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableDeclarationAccess().getBooleanVariableDeclarationParserRuleCall_2());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_BooleanVariableDeclaration_2=ruleBooleanVariableDeclaration();
+
+                    state._fsp--;
+
+
+                    			current = this_BooleanVariableDeclaration_2;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleStringVariableDeclaration"
+    // InternalTestgeneratorDSL.g:2889:1: entryRuleStringVariableDeclaration returns [EObject current=null] : iv_ruleStringVariableDeclaration= ruleStringVariableDeclaration EOF ;
+    public final EObject entryRuleStringVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStringVariableDeclaration = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2889:66: (iv_ruleStringVariableDeclaration= ruleStringVariableDeclaration EOF )
+            // InternalTestgeneratorDSL.g:2890:2: iv_ruleStringVariableDeclaration= ruleStringVariableDeclaration EOF
+            {
+             newCompositeNode(grammarAccess.getStringVariableDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleStringVariableDeclaration=ruleStringVariableDeclaration();
+
+            state._fsp--;
+
+             current =iv_ruleStringVariableDeclaration; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStringVariableDeclaration"
+
+
+    // $ANTLR start "ruleStringVariableDeclaration"
+    // InternalTestgeneratorDSL.g:2896:1: ruleStringVariableDeclaration returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) ) ) ;
+    public final EObject ruleStringVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_value_2_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:2902:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) ) ) )
+            // InternalTestgeneratorDSL.g:2903:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) ) )
+            {
+            // InternalTestgeneratorDSL.g:2903:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) ) )
+            // InternalTestgeneratorDSL.g:2904:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) )
+            {
+            // InternalTestgeneratorDSL.g:2904:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:2905:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:2905:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:2906:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringVariableDeclarationRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_54); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,61,FOLLOW_7); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getStringVariableDeclarationAccess().getEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:2921:3: ( (lv_value_2_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:2922:4: (lv_value_2_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:2922:4: (lv_value_2_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:2923:5: lv_value_2_0= RULE_STRING
+            {
+            lv_value_2_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
+
+            					newLeafNode(lv_value_2_0, grammarAccess.getStringVariableDeclarationAccess().getValueSTRINGTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringVariableDeclarationRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStringVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleIntVariableDeclaration"
+    // InternalTestgeneratorDSL.g:2943:1: entryRuleIntVariableDeclaration returns [EObject current=null] : iv_ruleIntVariableDeclaration= ruleIntVariableDeclaration EOF ;
+    public final EObject entryRuleIntVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleIntVariableDeclaration = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2943:63: (iv_ruleIntVariableDeclaration= ruleIntVariableDeclaration EOF )
+            // InternalTestgeneratorDSL.g:2944:2: iv_ruleIntVariableDeclaration= ruleIntVariableDeclaration EOF
+            {
+             newCompositeNode(grammarAccess.getIntVariableDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleIntVariableDeclaration=ruleIntVariableDeclaration();
+
+            state._fsp--;
+
+             current =iv_ruleIntVariableDeclaration; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleIntVariableDeclaration"
+
+
+    // $ANTLR start "ruleIntVariableDeclaration"
+    // InternalTestgeneratorDSL.g:2950:1: ruleIntVariableDeclaration returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_INT ) ) ) ;
+    public final EObject ruleIntVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_value_2_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:2956:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_INT ) ) ) )
+            // InternalTestgeneratorDSL.g:2957:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_INT ) ) )
+            {
+            // InternalTestgeneratorDSL.g:2957:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_INT ) ) )
+            // InternalTestgeneratorDSL.g:2958:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_INT ) )
+            {
+            // InternalTestgeneratorDSL.g:2958:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:2959:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:2959:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:2960:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntVariableDeclarationRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_54); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,61,FOLLOW_36); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getIntVariableDeclarationAccess().getEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:2975:3: ( (lv_value_2_0= RULE_INT ) )
+            // InternalTestgeneratorDSL.g:2976:4: (lv_value_2_0= RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:2976:4: (lv_value_2_0= RULE_INT )
+            // InternalTestgeneratorDSL.g:2977:5: lv_value_2_0= RULE_INT
+            {
+            lv_value_2_0=(Token)match(input,RULE_INT,FOLLOW_2); 
+
+            					newLeafNode(lv_value_2_0, grammarAccess.getIntVariableDeclarationAccess().getValueINTTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntVariableDeclarationRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"org.eclipse.xtext.common.Terminals.INT");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIntVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleBooleanVariableDeclaration"
+    // InternalTestgeneratorDSL.g:2997:1: entryRuleBooleanVariableDeclaration returns [EObject current=null] : iv_ruleBooleanVariableDeclaration= ruleBooleanVariableDeclaration EOF ;
+    public final EObject entryRuleBooleanVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBooleanVariableDeclaration = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:2997:67: (iv_ruleBooleanVariableDeclaration= ruleBooleanVariableDeclaration EOF )
+            // InternalTestgeneratorDSL.g:2998:2: iv_ruleBooleanVariableDeclaration= ruleBooleanVariableDeclaration EOF
+            {
+             newCompositeNode(grammarAccess.getBooleanVariableDeclarationRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBooleanVariableDeclaration=ruleBooleanVariableDeclaration();
+
+            state._fsp--;
+
+             current =iv_ruleBooleanVariableDeclaration; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBooleanVariableDeclaration"
+
+
+    // $ANTLR start "ruleBooleanVariableDeclaration"
+    // InternalTestgeneratorDSL.g:3004:1: ruleBooleanVariableDeclaration returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleBoolean ) ) ) ;
+    public final EObject ruleBooleanVariableDeclaration() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Enumerator lv_value_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3010:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleBoolean ) ) ) )
+            // InternalTestgeneratorDSL.g:3011:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleBoolean ) ) )
+            {
+            // InternalTestgeneratorDSL.g:3011:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleBoolean ) ) )
+            // InternalTestgeneratorDSL.g:3012:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= ruleBoolean ) )
+            {
+            // InternalTestgeneratorDSL.g:3012:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3013:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3013:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3014:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBooleanVariableDeclarationRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_54); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,61,FOLLOW_38); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getBooleanVariableDeclarationAccess().getEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:3029:3: ( (lv_value_2_0= ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:3030:4: (lv_value_2_0= ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:3030:4: (lv_value_2_0= ruleBoolean )
+            // InternalTestgeneratorDSL.g:3031:5: lv_value_2_0= ruleBoolean
+            {
+
+            					newCompositeNode(grammarAccess.getBooleanVariableDeclarationAccess().getValueBooleanEnumRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_2);
+            lv_value_2_0=ruleBoolean();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getBooleanVariableDeclarationRule());
+            					}
+            					set(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBooleanVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleEndCheck"
+    // InternalTestgeneratorDSL.g:3052:1: entryRuleEndCheck returns [EObject current=null] : iv_ruleEndCheck= ruleEndCheck EOF ;
+    public final EObject entryRuleEndCheck() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleEndCheck = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3052:49: (iv_ruleEndCheck= ruleEndCheck EOF )
+            // InternalTestgeneratorDSL.g:3053:2: iv_ruleEndCheck= ruleEndCheck EOF
+            {
+             newCompositeNode(grammarAccess.getEndCheckRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleEndCheck=ruleEndCheck();
+
+            state._fsp--;
+
+             current =iv_ruleEndCheck; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleEndCheck"
+
+
+    // $ANTLR start "ruleEndCheck"
+    // InternalTestgeneratorDSL.g:3059:1: ruleEndCheck returns [EObject current=null] : (this_VariableEquals_0= ruleVariableEquals | this_VariableNotEquals_1= ruleVariableNotEquals ) ;
+    public final EObject ruleEndCheck() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_VariableEquals_0 = null;
+
+        EObject this_VariableNotEquals_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3065:2: ( (this_VariableEquals_0= ruleVariableEquals | this_VariableNotEquals_1= ruleVariableNotEquals ) )
+            // InternalTestgeneratorDSL.g:3066:2: (this_VariableEquals_0= ruleVariableEquals | this_VariableNotEquals_1= ruleVariableNotEquals )
+            {
+            // InternalTestgeneratorDSL.g:3066:2: (this_VariableEquals_0= ruleVariableEquals | this_VariableNotEquals_1= ruleVariableNotEquals )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( (LA47_0==RULE_ID) ) {
+                int LA47_1 = input.LA(2);
+
+                if ( (LA47_1==63) ) {
+                    alt47=2;
+                }
+                else if ( (LA47_1==62) ) {
+                    alt47=1;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 47, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 47, 0, input);
+
+                throw nvae;
+            }
+            switch (alt47) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3067:3: this_VariableEquals_0= ruleVariableEquals
+                    {
+
+                    			newCompositeNode(grammarAccess.getEndCheckAccess().getVariableEqualsParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_VariableEquals_0=ruleVariableEquals();
+
+                    state._fsp--;
+
+
+                    			current = this_VariableEquals_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:3076:3: this_VariableNotEquals_1= ruleVariableNotEquals
+                    {
+
+                    			newCompositeNode(grammarAccess.getEndCheckAccess().getVariableNotEqualsParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_VariableNotEquals_1=ruleVariableNotEquals();
+
+                    state._fsp--;
+
+
+                    			current = this_VariableNotEquals_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleEndCheck"
+
+
+    // $ANTLR start "entryRuleVariableEquals"
+    // InternalTestgeneratorDSL.g:3088:1: entryRuleVariableEquals returns [EObject current=null] : iv_ruleVariableEquals= ruleVariableEquals EOF ;
+    public final EObject entryRuleVariableEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleVariableEquals = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3088:55: (iv_ruleVariableEquals= ruleVariableEquals EOF )
+            // InternalTestgeneratorDSL.g:3089:2: iv_ruleVariableEquals= ruleVariableEquals EOF
+            {
+             newCompositeNode(grammarAccess.getVariableEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleVariableEquals=ruleVariableEquals();
+
+            state._fsp--;
+
+             current =iv_ruleVariableEquals; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleVariableEquals"
+
+
+    // $ANTLR start "ruleVariableEquals"
+    // InternalTestgeneratorDSL.g:3095:1: ruleVariableEquals returns [EObject current=null] : (this_StringVariableEquals_0= ruleStringVariableEquals | this_IntVariableEquals_1= ruleIntVariableEquals | this_BooleanVariableEquals_2= ruleBooleanVariableEquals ) ;
+    public final EObject ruleVariableEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_StringVariableEquals_0 = null;
+
+        EObject this_IntVariableEquals_1 = null;
+
+        EObject this_BooleanVariableEquals_2 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3101:2: ( (this_StringVariableEquals_0= ruleStringVariableEquals | this_IntVariableEquals_1= ruleIntVariableEquals | this_BooleanVariableEquals_2= ruleBooleanVariableEquals ) )
+            // InternalTestgeneratorDSL.g:3102:2: (this_StringVariableEquals_0= ruleStringVariableEquals | this_IntVariableEquals_1= ruleIntVariableEquals | this_BooleanVariableEquals_2= ruleBooleanVariableEquals )
+            {
+            // InternalTestgeneratorDSL.g:3102:2: (this_StringVariableEquals_0= ruleStringVariableEquals | this_IntVariableEquals_1= ruleIntVariableEquals | this_BooleanVariableEquals_2= ruleBooleanVariableEquals )
+            int alt48=3;
+            int LA48_0 = input.LA(1);
+
+            if ( (LA48_0==RULE_ID) ) {
+                int LA48_1 = input.LA(2);
+
+                if ( (LA48_1==62) ) {
+                    switch ( input.LA(3) ) {
+                    case 72:
+                    case 73:
+                        {
+                        alt48=3;
+                        }
+                        break;
+                    case RULE_STRING:
+                        {
+                        alt48=1;
+                        }
+                        break;
+                    case RULE_INT:
+                        {
+                        alt48=2;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 48, 2, input);
+
+                        throw nvae;
+                    }
+
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 48, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 48, 0, input);
+
+                throw nvae;
+            }
+            switch (alt48) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3103:3: this_StringVariableEquals_0= ruleStringVariableEquals
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableEqualsAccess().getStringVariableEqualsParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_StringVariableEquals_0=ruleStringVariableEquals();
+
+                    state._fsp--;
+
+
+                    			current = this_StringVariableEquals_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:3112:3: this_IntVariableEquals_1= ruleIntVariableEquals
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableEqualsAccess().getIntVariableEqualsParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_IntVariableEquals_1=ruleIntVariableEquals();
+
+                    state._fsp--;
+
+
+                    			current = this_IntVariableEquals_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:3121:3: this_BooleanVariableEquals_2= ruleBooleanVariableEquals
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableEqualsAccess().getBooleanVariableEqualsParserRuleCall_2());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_BooleanVariableEquals_2=ruleBooleanVariableEquals();
+
+                    state._fsp--;
+
+
+                    			current = this_BooleanVariableEquals_2;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleVariableEquals"
+
+
+    // $ANTLR start "entryRuleStringVariableEquals"
+    // InternalTestgeneratorDSL.g:3133:1: entryRuleStringVariableEquals returns [EObject current=null] : iv_ruleStringVariableEquals= ruleStringVariableEquals EOF ;
+    public final EObject entryRuleStringVariableEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStringVariableEquals = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3133:61: (iv_ruleStringVariableEquals= ruleStringVariableEquals EOF )
+            // InternalTestgeneratorDSL.g:3134:2: iv_ruleStringVariableEquals= ruleStringVariableEquals EOF
+            {
+             newCompositeNode(grammarAccess.getStringVariableEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleStringVariableEquals=ruleStringVariableEquals();
+
+            state._fsp--;
+
+             current =iv_ruleStringVariableEquals; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStringVariableEquals"
+
+
+    // $ANTLR start "ruleStringVariableEquals"
+    // InternalTestgeneratorDSL.g:3140:1: ruleStringVariableEquals returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_STRING ) ) ) ;
+    public final EObject ruleStringVariableEquals() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_value_2_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3146:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_STRING ) ) ) )
+            // InternalTestgeneratorDSL.g:3147:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_STRING ) ) )
+            {
+            // InternalTestgeneratorDSL.g:3147:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_STRING ) ) )
+            // InternalTestgeneratorDSL.g:3148:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_STRING ) )
+            {
+            // InternalTestgeneratorDSL.g:3148:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3149:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3149:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3150:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringVariableEqualsRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_55); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,62,FOLLOW_7); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getStringVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:3165:3: ( (lv_value_2_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:3166:4: (lv_value_2_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:3166:4: (lv_value_2_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:3167:5: lv_value_2_0= RULE_STRING
+            {
+            lv_value_2_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
+
+            					newLeafNode(lv_value_2_0, grammarAccess.getStringVariableEqualsAccess().getValueSTRINGTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringVariableEqualsRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStringVariableEquals"
+
+
+    // $ANTLR start "entryRuleIntVariableEquals"
+    // InternalTestgeneratorDSL.g:3187:1: entryRuleIntVariableEquals returns [EObject current=null] : iv_ruleIntVariableEquals= ruleIntVariableEquals EOF ;
+    public final EObject entryRuleIntVariableEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleIntVariableEquals = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3187:58: (iv_ruleIntVariableEquals= ruleIntVariableEquals EOF )
+            // InternalTestgeneratorDSL.g:3188:2: iv_ruleIntVariableEquals= ruleIntVariableEquals EOF
+            {
+             newCompositeNode(grammarAccess.getIntVariableEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleIntVariableEquals=ruleIntVariableEquals();
+
+            state._fsp--;
+
+             current =iv_ruleIntVariableEquals; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleIntVariableEquals"
+
+
+    // $ANTLR start "ruleIntVariableEquals"
+    // InternalTestgeneratorDSL.g:3194:1: ruleIntVariableEquals returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_INT ) ) ) ;
+    public final EObject ruleIntVariableEquals() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_value_2_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3200:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_INT ) ) ) )
+            // InternalTestgeneratorDSL.g:3201:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_INT ) ) )
+            {
+            // InternalTestgeneratorDSL.g:3201:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_INT ) ) )
+            // InternalTestgeneratorDSL.g:3202:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= RULE_INT ) )
+            {
+            // InternalTestgeneratorDSL.g:3202:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3203:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3203:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3204:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntVariableEqualsRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_55); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,62,FOLLOW_36); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getIntVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:3219:3: ( (lv_value_2_0= RULE_INT ) )
+            // InternalTestgeneratorDSL.g:3220:4: (lv_value_2_0= RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:3220:4: (lv_value_2_0= RULE_INT )
+            // InternalTestgeneratorDSL.g:3221:5: lv_value_2_0= RULE_INT
+            {
+            lv_value_2_0=(Token)match(input,RULE_INT,FOLLOW_2); 
+
+            					newLeafNode(lv_value_2_0, grammarAccess.getIntVariableEqualsAccess().getValueINTTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntVariableEqualsRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"org.eclipse.xtext.common.Terminals.INT");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIntVariableEquals"
+
+
+    // $ANTLR start "entryRuleBooleanVariableEquals"
+    // InternalTestgeneratorDSL.g:3241:1: entryRuleBooleanVariableEquals returns [EObject current=null] : iv_ruleBooleanVariableEquals= ruleBooleanVariableEquals EOF ;
+    public final EObject entryRuleBooleanVariableEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBooleanVariableEquals = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3241:62: (iv_ruleBooleanVariableEquals= ruleBooleanVariableEquals EOF )
+            // InternalTestgeneratorDSL.g:3242:2: iv_ruleBooleanVariableEquals= ruleBooleanVariableEquals EOF
+            {
+             newCompositeNode(grammarAccess.getBooleanVariableEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBooleanVariableEquals=ruleBooleanVariableEquals();
+
+            state._fsp--;
+
+             current =iv_ruleBooleanVariableEquals; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBooleanVariableEquals"
+
+
+    // $ANTLR start "ruleBooleanVariableEquals"
+    // InternalTestgeneratorDSL.g:3248:1: ruleBooleanVariableEquals returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= ruleBoolean ) ) ) ;
+    public final EObject ruleBooleanVariableEquals() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Enumerator lv_value_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3254:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= ruleBoolean ) ) ) )
+            // InternalTestgeneratorDSL.g:3255:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= ruleBoolean ) ) )
+            {
+            // InternalTestgeneratorDSL.g:3255:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= ruleBoolean ) ) )
+            // InternalTestgeneratorDSL.g:3256:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '==' ( (lv_value_2_0= ruleBoolean ) )
+            {
+            // InternalTestgeneratorDSL.g:3256:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3257:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3257:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3258:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBooleanVariableEqualsRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_55); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,62,FOLLOW_38); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getBooleanVariableEqualsAccess().getEqualsSignEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:3273:3: ( (lv_value_2_0= ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:3274:4: (lv_value_2_0= ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:3274:4: (lv_value_2_0= ruleBoolean )
+            // InternalTestgeneratorDSL.g:3275:5: lv_value_2_0= ruleBoolean
+            {
+
+            					newCompositeNode(grammarAccess.getBooleanVariableEqualsAccess().getValueBooleanEnumRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_2);
+            lv_value_2_0=ruleBoolean();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getBooleanVariableEqualsRule());
+            					}
+            					set(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBooleanVariableEquals"
+
+
+    // $ANTLR start "entryRuleVariableNotEquals"
+    // InternalTestgeneratorDSL.g:3296:1: entryRuleVariableNotEquals returns [EObject current=null] : iv_ruleVariableNotEquals= ruleVariableNotEquals EOF ;
+    public final EObject entryRuleVariableNotEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleVariableNotEquals = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3296:58: (iv_ruleVariableNotEquals= ruleVariableNotEquals EOF )
+            // InternalTestgeneratorDSL.g:3297:2: iv_ruleVariableNotEquals= ruleVariableNotEquals EOF
+            {
+             newCompositeNode(grammarAccess.getVariableNotEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleVariableNotEquals=ruleVariableNotEquals();
+
+            state._fsp--;
+
+             current =iv_ruleVariableNotEquals; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleVariableNotEquals"
+
+
+    // $ANTLR start "ruleVariableNotEquals"
+    // InternalTestgeneratorDSL.g:3303:1: ruleVariableNotEquals returns [EObject current=null] : (this_StringVariableNotEquals_0= ruleStringVariableNotEquals | this_IntVariableNotEquals_1= ruleIntVariableNotEquals | this_BooleanVariableNotEquals_2= ruleBooleanVariableNotEquals ) ;
+    public final EObject ruleVariableNotEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_StringVariableNotEquals_0 = null;
+
+        EObject this_IntVariableNotEquals_1 = null;
+
+        EObject this_BooleanVariableNotEquals_2 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3309:2: ( (this_StringVariableNotEquals_0= ruleStringVariableNotEquals | this_IntVariableNotEquals_1= ruleIntVariableNotEquals | this_BooleanVariableNotEquals_2= ruleBooleanVariableNotEquals ) )
+            // InternalTestgeneratorDSL.g:3310:2: (this_StringVariableNotEquals_0= ruleStringVariableNotEquals | this_IntVariableNotEquals_1= ruleIntVariableNotEquals | this_BooleanVariableNotEquals_2= ruleBooleanVariableNotEquals )
+            {
+            // InternalTestgeneratorDSL.g:3310:2: (this_StringVariableNotEquals_0= ruleStringVariableNotEquals | this_IntVariableNotEquals_1= ruleIntVariableNotEquals | this_BooleanVariableNotEquals_2= ruleBooleanVariableNotEquals )
+            int alt49=3;
+            int LA49_0 = input.LA(1);
+
+            if ( (LA49_0==RULE_ID) ) {
+                int LA49_1 = input.LA(2);
+
+                if ( (LA49_1==63) ) {
+                    switch ( input.LA(3) ) {
+                    case RULE_INT:
+                        {
+                        alt49=2;
+                        }
+                        break;
+                    case 72:
+                    case 73:
+                        {
+                        alt49=3;
+                        }
+                        break;
+                    case RULE_STRING:
+                        {
+                        alt49=1;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 49, 2, input);
+
+                        throw nvae;
+                    }
+
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 49, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 49, 0, input);
+
+                throw nvae;
+            }
+            switch (alt49) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3311:3: this_StringVariableNotEquals_0= ruleStringVariableNotEquals
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableNotEqualsAccess().getStringVariableNotEqualsParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_StringVariableNotEquals_0=ruleStringVariableNotEquals();
+
+                    state._fsp--;
+
+
+                    			current = this_StringVariableNotEquals_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:3320:3: this_IntVariableNotEquals_1= ruleIntVariableNotEquals
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableNotEqualsAccess().getIntVariableNotEqualsParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_IntVariableNotEquals_1=ruleIntVariableNotEquals();
+
+                    state._fsp--;
+
+
+                    			current = this_IntVariableNotEquals_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:3329:3: this_BooleanVariableNotEquals_2= ruleBooleanVariableNotEquals
+                    {
+
+                    			newCompositeNode(grammarAccess.getVariableNotEqualsAccess().getBooleanVariableNotEqualsParserRuleCall_2());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_BooleanVariableNotEquals_2=ruleBooleanVariableNotEquals();
+
+                    state._fsp--;
+
+
+                    			current = this_BooleanVariableNotEquals_2;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleVariableNotEquals"
+
+
+    // $ANTLR start "entryRuleStringVariableNotEquals"
+    // InternalTestgeneratorDSL.g:3341:1: entryRuleStringVariableNotEquals returns [EObject current=null] : iv_ruleStringVariableNotEquals= ruleStringVariableNotEquals EOF ;
+    public final EObject entryRuleStringVariableNotEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStringVariableNotEquals = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3341:64: (iv_ruleStringVariableNotEquals= ruleStringVariableNotEquals EOF )
+            // InternalTestgeneratorDSL.g:3342:2: iv_ruleStringVariableNotEquals= ruleStringVariableNotEquals EOF
+            {
+             newCompositeNode(grammarAccess.getStringVariableNotEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleStringVariableNotEquals=ruleStringVariableNotEquals();
+
+            state._fsp--;
+
+             current =iv_ruleStringVariableNotEquals; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStringVariableNotEquals"
+
+
+    // $ANTLR start "ruleStringVariableNotEquals"
+    // InternalTestgeneratorDSL.g:3348:1: ruleStringVariableNotEquals returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_STRING ) ) ) ;
+    public final EObject ruleStringVariableNotEquals() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_value_2_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3354:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_STRING ) ) ) )
+            // InternalTestgeneratorDSL.g:3355:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_STRING ) ) )
+            {
+            // InternalTestgeneratorDSL.g:3355:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_STRING ) ) )
+            // InternalTestgeneratorDSL.g:3356:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_STRING ) )
+            {
+            // InternalTestgeneratorDSL.g:3356:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3357:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3357:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3358:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringVariableNotEqualsRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_56); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,63,FOLLOW_7); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getStringVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:3373:3: ( (lv_value_2_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:3374:4: (lv_value_2_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:3374:4: (lv_value_2_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:3375:5: lv_value_2_0= RULE_STRING
+            {
+            lv_value_2_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
+
+            					newLeafNode(lv_value_2_0, grammarAccess.getStringVariableNotEqualsAccess().getValueSTRINGTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringVariableNotEqualsRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStringVariableNotEquals"
+
+
+    // $ANTLR start "entryRuleIntVariableNotEquals"
+    // InternalTestgeneratorDSL.g:3395:1: entryRuleIntVariableNotEquals returns [EObject current=null] : iv_ruleIntVariableNotEquals= ruleIntVariableNotEquals EOF ;
+    public final EObject entryRuleIntVariableNotEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleIntVariableNotEquals = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3395:61: (iv_ruleIntVariableNotEquals= ruleIntVariableNotEquals EOF )
+            // InternalTestgeneratorDSL.g:3396:2: iv_ruleIntVariableNotEquals= ruleIntVariableNotEquals EOF
+            {
+             newCompositeNode(grammarAccess.getIntVariableNotEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleIntVariableNotEquals=ruleIntVariableNotEquals();
+
+            state._fsp--;
+
+             current =iv_ruleIntVariableNotEquals; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleIntVariableNotEquals"
+
+
+    // $ANTLR start "ruleIntVariableNotEquals"
+    // InternalTestgeneratorDSL.g:3402:1: ruleIntVariableNotEquals returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_INT ) ) ) ;
+    public final EObject ruleIntVariableNotEquals() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_value_2_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3408:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_INT ) ) ) )
+            // InternalTestgeneratorDSL.g:3409:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_INT ) ) )
+            {
+            // InternalTestgeneratorDSL.g:3409:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_INT ) ) )
+            // InternalTestgeneratorDSL.g:3410:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= RULE_INT ) )
+            {
+            // InternalTestgeneratorDSL.g:3410:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3411:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3411:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3412:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntVariableNotEqualsRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_56); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,63,FOLLOW_36); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getIntVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:3427:3: ( (lv_value_2_0= RULE_INT ) )
+            // InternalTestgeneratorDSL.g:3428:4: (lv_value_2_0= RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:3428:4: (lv_value_2_0= RULE_INT )
+            // InternalTestgeneratorDSL.g:3429:5: lv_value_2_0= RULE_INT
+            {
+            lv_value_2_0=(Token)match(input,RULE_INT,FOLLOW_2); 
+
+            					newLeafNode(lv_value_2_0, grammarAccess.getIntVariableNotEqualsAccess().getValueINTTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntVariableNotEqualsRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"org.eclipse.xtext.common.Terminals.INT");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIntVariableNotEquals"
+
+
+    // $ANTLR start "entryRuleBooleanVariableNotEquals"
+    // InternalTestgeneratorDSL.g:3449:1: entryRuleBooleanVariableNotEquals returns [EObject current=null] : iv_ruleBooleanVariableNotEquals= ruleBooleanVariableNotEquals EOF ;
+    public final EObject entryRuleBooleanVariableNotEquals() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBooleanVariableNotEquals = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3449:65: (iv_ruleBooleanVariableNotEquals= ruleBooleanVariableNotEquals EOF )
+            // InternalTestgeneratorDSL.g:3450:2: iv_ruleBooleanVariableNotEquals= ruleBooleanVariableNotEquals EOF
+            {
+             newCompositeNode(grammarAccess.getBooleanVariableNotEqualsRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBooleanVariableNotEquals=ruleBooleanVariableNotEquals();
+
+            state._fsp--;
+
+             current =iv_ruleBooleanVariableNotEquals; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBooleanVariableNotEquals"
+
+
+    // $ANTLR start "ruleBooleanVariableNotEquals"
+    // InternalTestgeneratorDSL.g:3456:1: ruleBooleanVariableNotEquals returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= ruleBoolean ) ) ) ;
+    public final EObject ruleBooleanVariableNotEquals() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Enumerator lv_value_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3462:2: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= ruleBoolean ) ) ) )
+            // InternalTestgeneratorDSL.g:3463:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= ruleBoolean ) ) )
+            {
+            // InternalTestgeneratorDSL.g:3463:2: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= ruleBoolean ) ) )
+            // InternalTestgeneratorDSL.g:3464:3: ( (otherlv_0= RULE_ID ) ) otherlv_1= '!=' ( (lv_value_2_0= ruleBoolean ) )
+            {
+            // InternalTestgeneratorDSL.g:3464:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3465:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3465:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3466:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBooleanVariableNotEqualsRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_56); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,63,FOLLOW_38); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getBooleanVariableNotEqualsAccess().getExclamationMarkEqualsSignKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:3481:3: ( (lv_value_2_0= ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:3482:4: (lv_value_2_0= ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:3482:4: (lv_value_2_0= ruleBoolean )
+            // InternalTestgeneratorDSL.g:3483:5: lv_value_2_0= ruleBoolean
+            {
+
+            					newCompositeNode(grammarAccess.getBooleanVariableNotEqualsAccess().getValueBooleanEnumRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_2);
+            lv_value_2_0=ruleBoolean();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getBooleanVariableNotEqualsRule());
+            					}
+            					set(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBooleanVariableNotEquals"
+
+
+    // $ANTLR start "entryRuleMock"
+    // InternalTestgeneratorDSL.g:3504:1: entryRuleMock returns [EObject current=null] : iv_ruleMock= ruleMock EOF ;
+    public final EObject entryRuleMock() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleMock = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3504:45: (iv_ruleMock= ruleMock EOF )
+            // InternalTestgeneratorDSL.g:3505:2: iv_ruleMock= ruleMock EOF
+            {
+             newCompositeNode(grammarAccess.getMockRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleMock=ruleMock();
+
+            state._fsp--;
+
+             current =iv_ruleMock; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMock"
+
+
+    // $ANTLR start "ruleMock"
+    // InternalTestgeneratorDSL.g:3511:1: ruleMock returns [EObject current=null] : (this_ExternalServiceMock_0= ruleExternalServiceMock | this_DelegateMock_1= ruleDelegateMock ) ;
+    public final EObject ruleMock() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_ExternalServiceMock_0 = null;
+
+        EObject this_DelegateMock_1 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3517:2: ( (this_ExternalServiceMock_0= ruleExternalServiceMock | this_DelegateMock_1= ruleDelegateMock ) )
+            // InternalTestgeneratorDSL.g:3518:2: (this_ExternalServiceMock_0= ruleExternalServiceMock | this_DelegateMock_1= ruleDelegateMock )
+            {
+            // InternalTestgeneratorDSL.g:3518:2: (this_ExternalServiceMock_0= ruleExternalServiceMock | this_DelegateMock_1= ruleDelegateMock )
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==64) ) {
+                alt50=1;
+            }
+            else if ( (LA50_0==66) ) {
+                alt50=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 50, 0, input);
+
+                throw nvae;
+            }
+            switch (alt50) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3519:3: this_ExternalServiceMock_0= ruleExternalServiceMock
+                    {
+
+                    			newCompositeNode(grammarAccess.getMockAccess().getExternalServiceMockParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_ExternalServiceMock_0=ruleExternalServiceMock();
+
+                    state._fsp--;
+
+
+                    			current = this_ExternalServiceMock_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:3528:3: this_DelegateMock_1= ruleDelegateMock
+                    {
+
+                    			newCompositeNode(grammarAccess.getMockAccess().getDelegateMockParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_DelegateMock_1=ruleDelegateMock();
+
+                    state._fsp--;
+
+
+                    			current = this_DelegateMock_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMock"
+
+
+    // $ANTLR start "entryRuleMockReference"
+    // InternalTestgeneratorDSL.g:3540:1: entryRuleMockReference returns [EObject current=null] : iv_ruleMockReference= ruleMockReference EOF ;
+    public final EObject entryRuleMockReference() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleMockReference = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3540:54: (iv_ruleMockReference= ruleMockReference EOF )
+            // InternalTestgeneratorDSL.g:3541:2: iv_ruleMockReference= ruleMockReference EOF
+            {
+             newCompositeNode(grammarAccess.getMockReferenceRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleMockReference=ruleMockReference();
+
+            state._fsp--;
+
+             current =iv_ruleMockReference; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMockReference"
+
+
+    // $ANTLR start "ruleMockReference"
+    // InternalTestgeneratorDSL.g:3547:1: ruleMockReference returns [EObject current=null] : ( (otherlv_0= RULE_ID ) ) ;
+    public final EObject ruleMockReference() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3553:2: ( ( (otherlv_0= RULE_ID ) ) )
+            // InternalTestgeneratorDSL.g:3554:2: ( (otherlv_0= RULE_ID ) )
+            {
+            // InternalTestgeneratorDSL.g:3554:2: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3555:3: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3555:3: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3556:4: otherlv_0= RULE_ID
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getMockReferenceRule());
+            				}
+            			
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_2); 
+
+            				newLeafNode(otherlv_0, grammarAccess.getMockReferenceAccess().getRefMockCrossReference_0());
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMockReference"
+
+
+    // $ANTLR start "entryRuleExternalServiceMock"
+    // InternalTestgeneratorDSL.g:3570:1: entryRuleExternalServiceMock returns [EObject current=null] : iv_ruleExternalServiceMock= ruleExternalServiceMock EOF ;
+    public final EObject entryRuleExternalServiceMock() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleExternalServiceMock = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3570:60: (iv_ruleExternalServiceMock= ruleExternalServiceMock EOF )
+            // InternalTestgeneratorDSL.g:3571:2: iv_ruleExternalServiceMock= ruleExternalServiceMock EOF
+            {
+             newCompositeNode(grammarAccess.getExternalServiceMockRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleExternalServiceMock=ruleExternalServiceMock();
+
+            state._fsp--;
+
+             current =iv_ruleExternalServiceMock; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleExternalServiceMock"
+
+
+    // $ANTLR start "ruleExternalServiceMock"
+    // InternalTestgeneratorDSL.g:3577:1: ruleExternalServiceMock returns [EObject current=null] : (otherlv_0= 'ExternalServiceMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' otherlv_3= 'topic' ( (lv_externalTopic_4_0= ruleExternalTopicReference ) ) ( ( (lv_mockingRules_5_0= ruleMockingRule ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) ) )* )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleExternalServiceMock() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token this_SEPARATOR_6=null;
+        Token this_DECLARATION_FINISHED_8=null;
+        EObject lv_externalTopic_4_0 = null;
+
+        EObject lv_mockingRules_5_0 = null;
+
+        EObject lv_mockingRules_7_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3583:2: ( (otherlv_0= 'ExternalServiceMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' otherlv_3= 'topic' ( (lv_externalTopic_4_0= ruleExternalTopicReference ) ) ( ( (lv_mockingRules_5_0= ruleMockingRule ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) ) )* )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:3584:2: (otherlv_0= 'ExternalServiceMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' otherlv_3= 'topic' ( (lv_externalTopic_4_0= ruleExternalTopicReference ) ) ( ( (lv_mockingRules_5_0= ruleMockingRule ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) ) )* )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:3584:2: (otherlv_0= 'ExternalServiceMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' otherlv_3= 'topic' ( (lv_externalTopic_4_0= ruleExternalTopicReference ) ) ( ( (lv_mockingRules_5_0= ruleMockingRule ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) ) )* )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:3585:3: otherlv_0= 'ExternalServiceMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' otherlv_3= 'topic' ( (lv_externalTopic_4_0= ruleExternalTopicReference ) ) ( ( (lv_mockingRules_5_0= ruleMockingRule ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) ) )* )? this_DECLARATION_FINISHED_8= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,64,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getExternalServiceMockAccess().getExternalServiceMockKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:3589:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3590:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3590:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3591:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_46); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getExternalServiceMockAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getExternalServiceMockRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,53,FOLLOW_57); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getExternalServiceMockAccess().getForKeyword_2());
+            		
+            otherlv_3=(Token)match(input,65,FOLLOW_4); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getExternalServiceMockAccess().getTopicKeyword_3());
+            		
+            // InternalTestgeneratorDSL.g:3615:3: ( (lv_externalTopic_4_0= ruleExternalTopicReference ) )
+            // InternalTestgeneratorDSL.g:3616:4: (lv_externalTopic_4_0= ruleExternalTopicReference )
+            {
+            // InternalTestgeneratorDSL.g:3616:4: (lv_externalTopic_4_0= ruleExternalTopicReference )
+            // InternalTestgeneratorDSL.g:3617:5: lv_externalTopic_4_0= ruleExternalTopicReference
+            {
+
+            					newCompositeNode(grammarAccess.getExternalServiceMockAccess().getExternalTopicExternalTopicReferenceParserRuleCall_4_0());
+            				
+            pushFollow(FOLLOW_10);
+            lv_externalTopic_4_0=ruleExternalTopicReference();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getExternalServiceMockRule());
+            					}
+            					set(
+            						current,
+            						"externalTopic",
+            						lv_externalTopic_4_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ExternalTopicReference");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:3634:3: ( ( (lv_mockingRules_5_0= ruleMockingRule ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) ) )* )?
+            int alt52=2;
+            int LA52_0 = input.LA(1);
+
+            if ( (LA52_0==17) ) {
+                alt52=1;
+            }
+            switch (alt52) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3635:4: ( (lv_mockingRules_5_0= ruleMockingRule ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:3635:4: ( (lv_mockingRules_5_0= ruleMockingRule ) )
+                    // InternalTestgeneratorDSL.g:3636:5: (lv_mockingRules_5_0= ruleMockingRule )
+                    {
+                    // InternalTestgeneratorDSL.g:3636:5: (lv_mockingRules_5_0= ruleMockingRule )
+                    // InternalTestgeneratorDSL.g:3637:6: lv_mockingRules_5_0= ruleMockingRule
+                    {
+
+                    						newCompositeNode(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_0_0());
+                    					
+                    pushFollow(FOLLOW_58);
+                    lv_mockingRules_5_0=ruleMockingRule();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getExternalServiceMockRule());
+                    						}
+                    						add(
+                    							current,
+                    							"mockingRules",
+                    							lv_mockingRules_5_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.MockingRule");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:3654:4: (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) ) )*
+                    loop51:
+                    do {
+                        int alt51=2;
+                        int LA51_0 = input.LA(1);
+
+                        if ( (LA51_0==RULE_SEPARATOR) ) {
+                            alt51=1;
+                        }
+
+
+                        switch (alt51) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:3655:5: this_SEPARATOR_6= RULE_SEPARATOR ( (lv_mockingRules_7_0= ruleMockingRule ) )
+                    	    {
+                    	    this_SEPARATOR_6=(Token)match(input,RULE_SEPARATOR,FOLLOW_5); 
+
+                    	    					newLeafNode(this_SEPARATOR_6, grammarAccess.getExternalServiceMockAccess().getSEPARATORTerminalRuleCall_5_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:3659:5: ( (lv_mockingRules_7_0= ruleMockingRule ) )
+                    	    // InternalTestgeneratorDSL.g:3660:6: (lv_mockingRules_7_0= ruleMockingRule )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:3660:6: (lv_mockingRules_7_0= ruleMockingRule )
+                    	    // InternalTestgeneratorDSL.g:3661:7: lv_mockingRules_7_0= ruleMockingRule
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getExternalServiceMockAccess().getMockingRulesMockingRuleParserRuleCall_5_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_58);
+                    	    lv_mockingRules_7_0=ruleMockingRule();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getExternalServiceMockRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"mockingRules",
+                    	    								lv_mockingRules_7_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.MockingRule");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop51;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_8=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_8, grammarAccess.getExternalServiceMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_6());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleExternalServiceMock"
+
+
+    // $ANTLR start "entryRuleDelegateMock"
+    // InternalTestgeneratorDSL.g:3688:1: entryRuleDelegateMock returns [EObject current=null] : iv_ruleDelegateMock= ruleDelegateMock EOF ;
+    public final EObject entryRuleDelegateMock() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDelegateMock = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3688:53: (iv_ruleDelegateMock= ruleDelegateMock EOF )
+            // InternalTestgeneratorDSL.g:3689:2: iv_ruleDelegateMock= ruleDelegateMock EOF
+            {
+             newCompositeNode(grammarAccess.getDelegateMockRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleDelegateMock=ruleDelegateMock();
+
+            state._fsp--;
+
+             current =iv_ruleDelegateMock; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDelegateMock"
+
+
+    // $ANTLR start "ruleDelegateMock"
+    // InternalTestgeneratorDSL.g:3695:1: ruleDelegateMock returns [EObject current=null] : (otherlv_0= 'DelegateMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference ) ) otherlv_4= 'with' otherlv_5= 'delegate' ( (lv_delegateClass_6_0= RULE_STRING ) ) ( ( (lv_manualMocks_7_0= ruleManualMock ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) ) )* )? this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED ) ;
+    public final EObject ruleDelegateMock() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token lv_delegateClass_6_0=null;
+        Token this_SEPARATOR_8=null;
+        Token this_DECLARATION_FINISHED_10=null;
+        EObject lv_serviceTaskReference_3_0 = null;
+
+        EObject lv_manualMocks_7_0 = null;
+
+        EObject lv_manualMocks_9_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3701:2: ( (otherlv_0= 'DelegateMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference ) ) otherlv_4= 'with' otherlv_5= 'delegate' ( (lv_delegateClass_6_0= RULE_STRING ) ) ( ( (lv_manualMocks_7_0= ruleManualMock ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) ) )* )? this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED ) )
+            // InternalTestgeneratorDSL.g:3702:2: (otherlv_0= 'DelegateMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference ) ) otherlv_4= 'with' otherlv_5= 'delegate' ( (lv_delegateClass_6_0= RULE_STRING ) ) ( ( (lv_manualMocks_7_0= ruleManualMock ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) ) )* )? this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED )
+            {
+            // InternalTestgeneratorDSL.g:3702:2: (otherlv_0= 'DelegateMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference ) ) otherlv_4= 'with' otherlv_5= 'delegate' ( (lv_delegateClass_6_0= RULE_STRING ) ) ( ( (lv_manualMocks_7_0= ruleManualMock ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) ) )* )? this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED )
+            // InternalTestgeneratorDSL.g:3703:3: otherlv_0= 'DelegateMock' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'for' ( (lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference ) ) otherlv_4= 'with' otherlv_5= 'delegate' ( (lv_delegateClass_6_0= RULE_STRING ) ) ( ( (lv_manualMocks_7_0= ruleManualMock ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) ) )* )? this_DECLARATION_FINISHED_10= RULE_DECLARATION_FINISHED
+            {
+            otherlv_0=(Token)match(input,66,FOLLOW_4); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getDelegateMockAccess().getDelegateMockKeyword_0());
+            		
+            // InternalTestgeneratorDSL.g:3707:3: ( (lv_name_1_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:3708:4: (lv_name_1_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:3708:4: (lv_name_1_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:3709:5: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_46); 
+
+            					newLeafNode(lv_name_1_0, grammarAccess.getDelegateMockAccess().getNameIDTerminalRuleCall_1_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getDelegateMockRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"name",
+            						lv_name_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+            				
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,53,FOLLOW_4); 
+
+            			newLeafNode(otherlv_2, grammarAccess.getDelegateMockAccess().getForKeyword_2());
+            		
+            // InternalTestgeneratorDSL.g:3729:3: ( (lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference ) )
+            // InternalTestgeneratorDSL.g:3730:4: (lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference )
+            {
+            // InternalTestgeneratorDSL.g:3730:4: (lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference )
+            // InternalTestgeneratorDSL.g:3731:5: lv_serviceTaskReference_3_0= ruleDelegateServiceTaskReference
+            {
+
+            					newCompositeNode(grammarAccess.getDelegateMockAccess().getServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0());
+            				
+            pushFollow(FOLLOW_5);
+            lv_serviceTaskReference_3_0=ruleDelegateServiceTaskReference();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getDelegateMockRule());
+            					}
+            					set(
+            						current,
+            						"serviceTaskReference",
+            						lv_serviceTaskReference_3_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.DelegateServiceTaskReference");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            otherlv_4=(Token)match(input,17,FOLLOW_26); 
+
+            			newLeafNode(otherlv_4, grammarAccess.getDelegateMockAccess().getWithKeyword_4());
+            		
+            otherlv_5=(Token)match(input,31,FOLLOW_7); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getDelegateMockAccess().getDelegateKeyword_5());
+            		
+            // InternalTestgeneratorDSL.g:3756:3: ( (lv_delegateClass_6_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:3757:4: (lv_delegateClass_6_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:3757:4: (lv_delegateClass_6_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:3758:5: lv_delegateClass_6_0= RULE_STRING
+            {
+            lv_delegateClass_6_0=(Token)match(input,RULE_STRING,FOLLOW_10); 
+
+            					newLeafNode(lv_delegateClass_6_0, grammarAccess.getDelegateMockAccess().getDelegateClassSTRINGTerminalRuleCall_6_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getDelegateMockRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"delegateClass",
+            						lv_delegateClass_6_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:3774:3: ( ( (lv_manualMocks_7_0= ruleManualMock ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) ) )* )?
+            int alt54=2;
+            int LA54_0 = input.LA(1);
+
+            if ( (LA54_0==17) ) {
+                alt54=1;
+            }
+            switch (alt54) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3775:4: ( (lv_manualMocks_7_0= ruleManualMock ) ) (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:3775:4: ( (lv_manualMocks_7_0= ruleManualMock ) )
+                    // InternalTestgeneratorDSL.g:3776:5: (lv_manualMocks_7_0= ruleManualMock )
+                    {
+                    // InternalTestgeneratorDSL.g:3776:5: (lv_manualMocks_7_0= ruleManualMock )
+                    // InternalTestgeneratorDSL.g:3777:6: lv_manualMocks_7_0= ruleManualMock
+                    {
+
+                    						newCompositeNode(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_0_0());
+                    					
+                    pushFollow(FOLLOW_58);
+                    lv_manualMocks_7_0=ruleManualMock();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getDelegateMockRule());
+                    						}
+                    						add(
+                    							current,
+                    							"manualMocks",
+                    							lv_manualMocks_7_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.ManualMock");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:3794:4: (this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) ) )*
+                    loop53:
+                    do {
+                        int alt53=2;
+                        int LA53_0 = input.LA(1);
+
+                        if ( (LA53_0==RULE_SEPARATOR) ) {
+                            alt53=1;
+                        }
+
+
+                        switch (alt53) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:3795:5: this_SEPARATOR_8= RULE_SEPARATOR ( (lv_manualMocks_9_0= ruleManualMock ) )
+                    	    {
+                    	    this_SEPARATOR_8=(Token)match(input,RULE_SEPARATOR,FOLLOW_5); 
+
+                    	    					newLeafNode(this_SEPARATOR_8, grammarAccess.getDelegateMockAccess().getSEPARATORTerminalRuleCall_7_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:3799:5: ( (lv_manualMocks_9_0= ruleManualMock ) )
+                    	    // InternalTestgeneratorDSL.g:3800:6: (lv_manualMocks_9_0= ruleManualMock )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:3800:6: (lv_manualMocks_9_0= ruleManualMock )
+                    	    // InternalTestgeneratorDSL.g:3801:7: lv_manualMocks_9_0= ruleManualMock
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getDelegateMockAccess().getManualMocksManualMockParserRuleCall_7_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_58);
+                    	    lv_manualMocks_9_0=ruleManualMock();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getDelegateMockRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"manualMocks",
+                    	    								lv_manualMocks_9_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.ManualMock");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop53;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_DECLARATION_FINISHED_10=(Token)match(input,RULE_DECLARATION_FINISHED,FOLLOW_2); 
+
+            			newLeafNode(this_DECLARATION_FINISHED_10, grammarAccess.getDelegateMockAccess().getDECLARATION_FINISHEDTerminalRuleCall_8());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleDelegateMock"
+
+
+    // $ANTLR start "entryRuleMockingRule"
+    // InternalTestgeneratorDSL.g:3828:1: entryRuleMockingRule returns [EObject current=null] : iv_ruleMockingRule= ruleMockingRule EOF ;
+    public final EObject entryRuleMockingRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleMockingRule = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3828:52: (iv_ruleMockingRule= ruleMockingRule EOF )
+            // InternalTestgeneratorDSL.g:3829:2: iv_ruleMockingRule= ruleMockingRule EOF
+            {
+             newCompositeNode(grammarAccess.getMockingRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleMockingRule=ruleMockingRule();
+
+            state._fsp--;
+
+             current =iv_ruleMockingRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMockingRule"
+
+
+    // $ANTLR start "ruleMockingRule"
+    // InternalTestgeneratorDSL.g:3835:1: ruleMockingRule returns [EObject current=null] : (otherlv_0= 'with' otherlv_1= 'rule' this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'if' this_LIST_OPEN_4= RULE_LIST_OPEN ( ( (lv_comparisons_5_0= ruleCompare ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) ) )* )? this_LIST_CLOSED_8= RULE_LIST_CLOSED otherlv_9= 'set' this_LIST_OPEN_10= RULE_LIST_OPEN ( ( (lv_variables_11_0= ruleVariableDeclaration ) ) (this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_14= RULE_LIST_CLOSED ) ;
+    public final EObject ruleMockingRule() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token this_ASSOCIATION_2=null;
+        Token otherlv_3=null;
+        Token this_LIST_OPEN_4=null;
+        Token this_SEPARATOR_6=null;
+        Token this_LIST_CLOSED_8=null;
+        Token otherlv_9=null;
+        Token this_LIST_OPEN_10=null;
+        Token this_SEPARATOR_12=null;
+        Token this_LIST_CLOSED_14=null;
+        EObject lv_comparisons_5_0 = null;
+
+        EObject lv_comparisons_7_0 = null;
+
+        EObject lv_variables_11_0 = null;
+
+        EObject lv_variables_13_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3841:2: ( (otherlv_0= 'with' otherlv_1= 'rule' this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'if' this_LIST_OPEN_4= RULE_LIST_OPEN ( ( (lv_comparisons_5_0= ruleCompare ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) ) )* )? this_LIST_CLOSED_8= RULE_LIST_CLOSED otherlv_9= 'set' this_LIST_OPEN_10= RULE_LIST_OPEN ( ( (lv_variables_11_0= ruleVariableDeclaration ) ) (this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_14= RULE_LIST_CLOSED ) )
+            // InternalTestgeneratorDSL.g:3842:2: (otherlv_0= 'with' otherlv_1= 'rule' this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'if' this_LIST_OPEN_4= RULE_LIST_OPEN ( ( (lv_comparisons_5_0= ruleCompare ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) ) )* )? this_LIST_CLOSED_8= RULE_LIST_CLOSED otherlv_9= 'set' this_LIST_OPEN_10= RULE_LIST_OPEN ( ( (lv_variables_11_0= ruleVariableDeclaration ) ) (this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_14= RULE_LIST_CLOSED )
+            {
+            // InternalTestgeneratorDSL.g:3842:2: (otherlv_0= 'with' otherlv_1= 'rule' this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'if' this_LIST_OPEN_4= RULE_LIST_OPEN ( ( (lv_comparisons_5_0= ruleCompare ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) ) )* )? this_LIST_CLOSED_8= RULE_LIST_CLOSED otherlv_9= 'set' this_LIST_OPEN_10= RULE_LIST_OPEN ( ( (lv_variables_11_0= ruleVariableDeclaration ) ) (this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_14= RULE_LIST_CLOSED )
+            // InternalTestgeneratorDSL.g:3843:3: otherlv_0= 'with' otherlv_1= 'rule' this_ASSOCIATION_2= RULE_ASSOCIATION otherlv_3= 'if' this_LIST_OPEN_4= RULE_LIST_OPEN ( ( (lv_comparisons_5_0= ruleCompare ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) ) )* )? this_LIST_CLOSED_8= RULE_LIST_CLOSED otherlv_9= 'set' this_LIST_OPEN_10= RULE_LIST_OPEN ( ( (lv_variables_11_0= ruleVariableDeclaration ) ) (this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) ) )* )? this_LIST_CLOSED_14= RULE_LIST_CLOSED
+            {
+            otherlv_0=(Token)match(input,17,FOLLOW_59); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getMockingRuleAccess().getWithKeyword_0());
+            		
+            otherlv_1=(Token)match(input,67,FOLLOW_12); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getMockingRuleAccess().getRuleKeyword_1());
+            		
+            this_ASSOCIATION_2=(Token)match(input,RULE_ASSOCIATION,FOLLOW_60); 
+
+            			newLeafNode(this_ASSOCIATION_2, grammarAccess.getMockingRuleAccess().getASSOCIATIONTerminalRuleCall_2());
+            		
+            otherlv_3=(Token)match(input,68,FOLLOW_13); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getMockingRuleAccess().getIfKeyword_3());
+            		
+            this_LIST_OPEN_4=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+            			newLeafNode(this_LIST_OPEN_4, grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_4());
+            		
+            // InternalTestgeneratorDSL.g:3863:3: ( ( (lv_comparisons_5_0= ruleCompare ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) ) )* )?
+            int alt56=2;
+            int LA56_0 = input.LA(1);
+
+            if ( (LA56_0==RULE_ID) ) {
+                alt56=1;
+            }
+            switch (alt56) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3864:4: ( (lv_comparisons_5_0= ruleCompare ) ) (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:3864:4: ( (lv_comparisons_5_0= ruleCompare ) )
+                    // InternalTestgeneratorDSL.g:3865:5: (lv_comparisons_5_0= ruleCompare )
+                    {
+                    // InternalTestgeneratorDSL.g:3865:5: (lv_comparisons_5_0= ruleCompare )
+                    // InternalTestgeneratorDSL.g:3866:6: lv_comparisons_5_0= ruleCompare
+                    {
+
+                    						newCompositeNode(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_0_0());
+                    					
+                    pushFollow(FOLLOW_15);
+                    lv_comparisons_5_0=ruleCompare();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getMockingRuleRule());
+                    						}
+                    						add(
+                    							current,
+                    							"comparisons",
+                    							lv_comparisons_5_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.Compare");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:3883:4: (this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) ) )*
+                    loop55:
+                    do {
+                        int alt55=2;
+                        int LA55_0 = input.LA(1);
+
+                        if ( (LA55_0==RULE_SEPARATOR) ) {
+                            alt55=1;
+                        }
+
+
+                        switch (alt55) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:3884:5: this_SEPARATOR_6= RULE_SEPARATOR ( (lv_comparisons_7_0= ruleCompare ) )
+                    	    {
+                    	    this_SEPARATOR_6=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                    	    					newLeafNode(this_SEPARATOR_6, grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_5_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:3888:5: ( (lv_comparisons_7_0= ruleCompare ) )
+                    	    // InternalTestgeneratorDSL.g:3889:6: (lv_comparisons_7_0= ruleCompare )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:3889:6: (lv_comparisons_7_0= ruleCompare )
+                    	    // InternalTestgeneratorDSL.g:3890:7: lv_comparisons_7_0= ruleCompare
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getMockingRuleAccess().getComparisonsCompareParserRuleCall_5_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_15);
+                    	    lv_comparisons_7_0=ruleCompare();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getMockingRuleRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"comparisons",
+                    	    								lv_comparisons_7_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.Compare");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop55;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_8=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_61); 
+
+            			newLeafNode(this_LIST_CLOSED_8, grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_6());
+            		
+            otherlv_9=(Token)match(input,69,FOLLOW_13); 
+
+            			newLeafNode(otherlv_9, grammarAccess.getMockingRuleAccess().getSetKeyword_7());
+            		
+            this_LIST_OPEN_10=(Token)match(input,RULE_LIST_OPEN,FOLLOW_20); 
+
+            			newLeafNode(this_LIST_OPEN_10, grammarAccess.getMockingRuleAccess().getLIST_OPENTerminalRuleCall_8());
+            		
+            // InternalTestgeneratorDSL.g:3921:3: ( ( (lv_variables_11_0= ruleVariableDeclaration ) ) (this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) ) )* )?
+            int alt58=2;
+            int LA58_0 = input.LA(1);
+
+            if ( (LA58_0==RULE_ID) ) {
+                alt58=1;
+            }
+            switch (alt58) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:3922:4: ( (lv_variables_11_0= ruleVariableDeclaration ) ) (this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) ) )*
+                    {
+                    // InternalTestgeneratorDSL.g:3922:4: ( (lv_variables_11_0= ruleVariableDeclaration ) )
+                    // InternalTestgeneratorDSL.g:3923:5: (lv_variables_11_0= ruleVariableDeclaration )
+                    {
+                    // InternalTestgeneratorDSL.g:3923:5: (lv_variables_11_0= ruleVariableDeclaration )
+                    // InternalTestgeneratorDSL.g:3924:6: lv_variables_11_0= ruleVariableDeclaration
+                    {
+
+                    						newCompositeNode(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_0_0());
+                    					
+                    pushFollow(FOLLOW_15);
+                    lv_variables_11_0=ruleVariableDeclaration();
+
+                    state._fsp--;
+
+
+                    						if (current==null) {
+                    							current = createModelElementForParent(grammarAccess.getMockingRuleRule());
+                    						}
+                    						add(
+                    							current,
+                    							"variables",
+                    							lv_variables_11_0,
+                    							"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+                    // InternalTestgeneratorDSL.g:3941:4: (this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) ) )*
+                    loop57:
+                    do {
+                        int alt57=2;
+                        int LA57_0 = input.LA(1);
+
+                        if ( (LA57_0==RULE_SEPARATOR) ) {
+                            alt57=1;
+                        }
+
+
+                        switch (alt57) {
+                    	case 1 :
+                    	    // InternalTestgeneratorDSL.g:3942:5: this_SEPARATOR_12= RULE_SEPARATOR ( (lv_variables_13_0= ruleVariableDeclaration ) )
+                    	    {
+                    	    this_SEPARATOR_12=(Token)match(input,RULE_SEPARATOR,FOLLOW_4); 
+
+                    	    					newLeafNode(this_SEPARATOR_12, grammarAccess.getMockingRuleAccess().getSEPARATORTerminalRuleCall_9_1_0());
+                    	    				
+                    	    // InternalTestgeneratorDSL.g:3946:5: ( (lv_variables_13_0= ruleVariableDeclaration ) )
+                    	    // InternalTestgeneratorDSL.g:3947:6: (lv_variables_13_0= ruleVariableDeclaration )
+                    	    {
+                    	    // InternalTestgeneratorDSL.g:3947:6: (lv_variables_13_0= ruleVariableDeclaration )
+                    	    // InternalTestgeneratorDSL.g:3948:7: lv_variables_13_0= ruleVariableDeclaration
+                    	    {
+
+                    	    							newCompositeNode(grammarAccess.getMockingRuleAccess().getVariablesVariableDeclarationParserRuleCall_9_1_1_0());
+                    	    						
+                    	    pushFollow(FOLLOW_15);
+                    	    lv_variables_13_0=ruleVariableDeclaration();
+
+                    	    state._fsp--;
+
+
+                    	    							if (current==null) {
+                    	    								current = createModelElementForParent(grammarAccess.getMockingRuleRule());
+                    	    							}
+                    	    							add(
+                    	    								current,
+                    	    								"variables",
+                    	    								lv_variables_13_0,
+                    	    								"de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+                    	    							afterParserOrEnumRuleCall();
+                    	    						
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop57;
+                        }
+                    } while (true);
+
+
+                    }
+                    break;
+
+            }
+
+            this_LIST_CLOSED_14=(Token)match(input,RULE_LIST_CLOSED,FOLLOW_2); 
+
+            			newLeafNode(this_LIST_CLOSED_14, grammarAccess.getMockingRuleAccess().getLIST_CLOSEDTerminalRuleCall_10());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMockingRule"
+
+
+    // $ANTLR start "entryRuleManualMock"
+    // InternalTestgeneratorDSL.g:3975:1: entryRuleManualMock returns [EObject current=null] : iv_ruleManualMock= ruleManualMock EOF ;
+    public final EObject entryRuleManualMock() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleManualMock = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:3975:51: (iv_ruleManualMock= ruleManualMock EOF )
+            // InternalTestgeneratorDSL.g:3976:2: iv_ruleManualMock= ruleManualMock EOF
+            {
+             newCompositeNode(grammarAccess.getManualMockRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleManualMock=ruleManualMock();
+
+            state._fsp--;
+
+             current =iv_ruleManualMock; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleManualMock"
+
+
+    // $ANTLR start "ruleManualMock"
+    // InternalTestgeneratorDSL.g:3982:1: ruleManualMock returns [EObject current=null] : (otherlv_0= 'with' otherlv_1= 'manual' ( (lv_serviceName_2_0= RULE_STRING ) ) otherlv_3= 'by' otherlv_4= 'setter' ( (lv_setter_5_0= RULE_STRING ) ) ) ;
+    public final EObject ruleManualMock() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token lv_serviceName_2_0=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token lv_setter_5_0=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:3988:2: ( (otherlv_0= 'with' otherlv_1= 'manual' ( (lv_serviceName_2_0= RULE_STRING ) ) otherlv_3= 'by' otherlv_4= 'setter' ( (lv_setter_5_0= RULE_STRING ) ) ) )
+            // InternalTestgeneratorDSL.g:3989:2: (otherlv_0= 'with' otherlv_1= 'manual' ( (lv_serviceName_2_0= RULE_STRING ) ) otherlv_3= 'by' otherlv_4= 'setter' ( (lv_setter_5_0= RULE_STRING ) ) )
+            {
+            // InternalTestgeneratorDSL.g:3989:2: (otherlv_0= 'with' otherlv_1= 'manual' ( (lv_serviceName_2_0= RULE_STRING ) ) otherlv_3= 'by' otherlv_4= 'setter' ( (lv_setter_5_0= RULE_STRING ) ) )
+            // InternalTestgeneratorDSL.g:3990:3: otherlv_0= 'with' otherlv_1= 'manual' ( (lv_serviceName_2_0= RULE_STRING ) ) otherlv_3= 'by' otherlv_4= 'setter' ( (lv_setter_5_0= RULE_STRING ) )
+            {
+            otherlv_0=(Token)match(input,17,FOLLOW_62); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getManualMockAccess().getWithKeyword_0());
+            		
+            otherlv_1=(Token)match(input,70,FOLLOW_7); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getManualMockAccess().getManualKeyword_1());
+            		
+            // InternalTestgeneratorDSL.g:3998:3: ( (lv_serviceName_2_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:3999:4: (lv_serviceName_2_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:3999:4: (lv_serviceName_2_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:4000:5: lv_serviceName_2_0= RULE_STRING
+            {
+            lv_serviceName_2_0=(Token)match(input,RULE_STRING,FOLLOW_41); 
+
+            					newLeafNode(lv_serviceName_2_0, grammarAccess.getManualMockAccess().getServiceNameSTRINGTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getManualMockRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"serviceName",
+            						lv_serviceName_2_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,47,FOLLOW_63); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getManualMockAccess().getByKeyword_3());
+            		
+            otherlv_4=(Token)match(input,71,FOLLOW_7); 
+
+            			newLeafNode(otherlv_4, grammarAccess.getManualMockAccess().getSetterKeyword_4());
+            		
+            // InternalTestgeneratorDSL.g:4024:3: ( (lv_setter_5_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:4025:4: (lv_setter_5_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:4025:4: (lv_setter_5_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:4026:5: lv_setter_5_0= RULE_STRING
+            {
+            lv_setter_5_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
+
+            					newLeafNode(lv_setter_5_0, grammarAccess.getManualMockAccess().getSetterSTRINGTerminalRuleCall_5_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getManualMockRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"setter",
+            						lv_setter_5_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleManualMock"
+
+
+    // $ANTLR start "entryRuleCompare"
+    // InternalTestgeneratorDSL.g:4046:1: entryRuleCompare returns [EObject current=null] : iv_ruleCompare= ruleCompare EOF ;
+    public final EObject entryRuleCompare() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleCompare = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:4046:48: (iv_ruleCompare= ruleCompare EOF )
+            // InternalTestgeneratorDSL.g:4047:2: iv_ruleCompare= ruleCompare EOF
+            {
+             newCompositeNode(grammarAccess.getCompareRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleCompare=ruleCompare();
+
+            state._fsp--;
+
+             current =iv_ruleCompare; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleCompare"
+
+
+    // $ANTLR start "ruleCompare"
+    // InternalTestgeneratorDSL.g:4053:1: ruleCompare returns [EObject current=null] : (this_StringCompare_0= ruleStringCompare | this_IntCompare_1= ruleIntCompare | this_BooleanCompare_2= ruleBooleanCompare ) ;
+    public final EObject ruleCompare() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_StringCompare_0 = null;
+
+        EObject this_IntCompare_1 = null;
+
+        EObject this_BooleanCompare_2 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:4059:2: ( (this_StringCompare_0= ruleStringCompare | this_IntCompare_1= ruleIntCompare | this_BooleanCompare_2= ruleBooleanCompare ) )
+            // InternalTestgeneratorDSL.g:4060:2: (this_StringCompare_0= ruleStringCompare | this_IntCompare_1= ruleIntCompare | this_BooleanCompare_2= ruleBooleanCompare )
+            {
+            // InternalTestgeneratorDSL.g:4060:2: (this_StringCompare_0= ruleStringCompare | this_IntCompare_1= ruleIntCompare | this_BooleanCompare_2= ruleBooleanCompare )
+            int alt59=3;
+            int LA59_0 = input.LA(1);
+
+            if ( (LA59_0==RULE_ID) ) {
+                switch ( input.LA(2) ) {
+                case 62:
+                    {
+                    switch ( input.LA(3) ) {
+                    case RULE_INT:
+                        {
+                        alt59=2;
+                        }
+                        break;
+                    case 72:
+                    case 73:
+                        {
+                        alt59=3;
+                        }
+                        break;
+                    case RULE_STRING:
+                        {
+                        alt59=1;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 59, 2, input);
+
+                        throw nvae;
+                    }
+
+                    }
+                    break;
+                case 63:
+                    {
+                    switch ( input.LA(3) ) {
+                    case RULE_STRING:
+                        {
+                        alt59=1;
+                        }
+                        break;
+                    case RULE_INT:
+                        {
+                        alt59=2;
+                        }
+                        break;
+                    case 72:
+                    case 73:
+                        {
+                        alt59=3;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 59, 3, input);
+
+                        throw nvae;
+                    }
+
+                    }
+                    break;
+                case 74:
+                case 75:
+                case 76:
+                case 77:
+                    {
+                    alt59=2;
+                    }
+                    break;
+                default:
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 59, 1, input);
+
+                    throw nvae;
+                }
+
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 59, 0, input);
+
+                throw nvae;
+            }
+            switch (alt59) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:4061:3: this_StringCompare_0= ruleStringCompare
+                    {
+
+                    			newCompositeNode(grammarAccess.getCompareAccess().getStringCompareParserRuleCall_0());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_StringCompare_0=ruleStringCompare();
+
+                    state._fsp--;
+
+
+                    			current = this_StringCompare_0;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:4070:3: this_IntCompare_1= ruleIntCompare
+                    {
+
+                    			newCompositeNode(grammarAccess.getCompareAccess().getIntCompareParserRuleCall_1());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_IntCompare_1=ruleIntCompare();
+
+                    state._fsp--;
+
+
+                    			current = this_IntCompare_1;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:4079:3: this_BooleanCompare_2= ruleBooleanCompare
+                    {
+
+                    			newCompositeNode(grammarAccess.getCompareAccess().getBooleanCompareParserRuleCall_2());
+                    		
+                    pushFollow(FOLLOW_2);
+                    this_BooleanCompare_2=ruleBooleanCompare();
+
+                    state._fsp--;
+
+
+                    			current = this_BooleanCompare_2;
+                    			afterParserOrEnumRuleCall();
+                    		
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleCompare"
+
+
+    // $ANTLR start "entryRuleStringCompare"
+    // InternalTestgeneratorDSL.g:4091:1: entryRuleStringCompare returns [EObject current=null] : iv_ruleStringCompare= ruleStringCompare EOF ;
+    public final EObject entryRuleStringCompare() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStringCompare = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:4091:54: (iv_ruleStringCompare= ruleStringCompare EOF )
+            // InternalTestgeneratorDSL.g:4092:2: iv_ruleStringCompare= ruleStringCompare EOF
+            {
+             newCompositeNode(grammarAccess.getStringCompareRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleStringCompare=ruleStringCompare();
+
+            state._fsp--;
+
+             current =iv_ruleStringCompare; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStringCompare"
+
+
+    // $ANTLR start "ruleStringCompare"
+    // InternalTestgeneratorDSL.g:4098:1: ruleStringCompare returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleStringCompareSymbol ) ) ( (lv_value_2_0= RULE_STRING ) ) ) ;
+    public final EObject ruleStringCompare() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_value_2_0=null;
+        Enumerator lv_compareSymbol_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:4104:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleStringCompareSymbol ) ) ( (lv_value_2_0= RULE_STRING ) ) ) )
+            // InternalTestgeneratorDSL.g:4105:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleStringCompareSymbol ) ) ( (lv_value_2_0= RULE_STRING ) ) )
+            {
+            // InternalTestgeneratorDSL.g:4105:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleStringCompareSymbol ) ) ( (lv_value_2_0= RULE_STRING ) ) )
+            // InternalTestgeneratorDSL.g:4106:3: ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleStringCompareSymbol ) ) ( (lv_value_2_0= RULE_STRING ) )
+            {
+            // InternalTestgeneratorDSL.g:4106:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:4107:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:4107:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:4108:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringCompareRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_64); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getStringCompareAccess().getKeyStringVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:4119:3: ( (lv_compareSymbol_1_0= ruleStringCompareSymbol ) )
+            // InternalTestgeneratorDSL.g:4120:4: (lv_compareSymbol_1_0= ruleStringCompareSymbol )
+            {
+            // InternalTestgeneratorDSL.g:4120:4: (lv_compareSymbol_1_0= ruleStringCompareSymbol )
+            // InternalTestgeneratorDSL.g:4121:5: lv_compareSymbol_1_0= ruleStringCompareSymbol
+            {
+
+            					newCompositeNode(grammarAccess.getStringCompareAccess().getCompareSymbolStringCompareSymbolEnumRuleCall_1_0());
+            				
+            pushFollow(FOLLOW_7);
+            lv_compareSymbol_1_0=ruleStringCompareSymbol();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getStringCompareRule());
+            					}
+            					set(
+            						current,
+            						"compareSymbol",
+            						lv_compareSymbol_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.StringCompareSymbol");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:4138:3: ( (lv_value_2_0= RULE_STRING ) )
+            // InternalTestgeneratorDSL.g:4139:4: (lv_value_2_0= RULE_STRING )
+            {
+            // InternalTestgeneratorDSL.g:4139:4: (lv_value_2_0= RULE_STRING )
+            // InternalTestgeneratorDSL.g:4140:5: lv_value_2_0= RULE_STRING
+            {
+            lv_value_2_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
+
+            					newLeafNode(lv_value_2_0, grammarAccess.getStringCompareAccess().getValueSTRINGTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getStringCompareRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"org.eclipse.xtext.common.Terminals.STRING");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStringCompare"
+
+
+    // $ANTLR start "entryRuleIntCompare"
+    // InternalTestgeneratorDSL.g:4160:1: entryRuleIntCompare returns [EObject current=null] : iv_ruleIntCompare= ruleIntCompare EOF ;
+    public final EObject entryRuleIntCompare() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleIntCompare = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:4160:51: (iv_ruleIntCompare= ruleIntCompare EOF )
+            // InternalTestgeneratorDSL.g:4161:2: iv_ruleIntCompare= ruleIntCompare EOF
+            {
+             newCompositeNode(grammarAccess.getIntCompareRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleIntCompare=ruleIntCompare();
+
+            state._fsp--;
+
+             current =iv_ruleIntCompare; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleIntCompare"
+
+
+    // $ANTLR start "ruleIntCompare"
+    // InternalTestgeneratorDSL.g:4167:1: ruleIntCompare returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleIntCompareSymbol ) ) ( (lv_value_2_0= RULE_INT ) ) ) ;
+    public final EObject ruleIntCompare() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_value_2_0=null;
+        Enumerator lv_compareSymbol_1_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:4173:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleIntCompareSymbol ) ) ( (lv_value_2_0= RULE_INT ) ) ) )
+            // InternalTestgeneratorDSL.g:4174:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleIntCompareSymbol ) ) ( (lv_value_2_0= RULE_INT ) ) )
+            {
+            // InternalTestgeneratorDSL.g:4174:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleIntCompareSymbol ) ) ( (lv_value_2_0= RULE_INT ) ) )
+            // InternalTestgeneratorDSL.g:4175:3: ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleIntCompareSymbol ) ) ( (lv_value_2_0= RULE_INT ) )
+            {
+            // InternalTestgeneratorDSL.g:4175:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:4176:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:4176:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:4177:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntCompareRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_65); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getIntCompareAccess().getKeyIntVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:4188:3: ( (lv_compareSymbol_1_0= ruleIntCompareSymbol ) )
+            // InternalTestgeneratorDSL.g:4189:4: (lv_compareSymbol_1_0= ruleIntCompareSymbol )
+            {
+            // InternalTestgeneratorDSL.g:4189:4: (lv_compareSymbol_1_0= ruleIntCompareSymbol )
+            // InternalTestgeneratorDSL.g:4190:5: lv_compareSymbol_1_0= ruleIntCompareSymbol
+            {
+
+            					newCompositeNode(grammarAccess.getIntCompareAccess().getCompareSymbolIntCompareSymbolEnumRuleCall_1_0());
+            				
+            pushFollow(FOLLOW_36);
+            lv_compareSymbol_1_0=ruleIntCompareSymbol();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getIntCompareRule());
+            					}
+            					set(
+            						current,
+            						"compareSymbol",
+            						lv_compareSymbol_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.IntCompareSymbol");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:4207:3: ( (lv_value_2_0= RULE_INT ) )
+            // InternalTestgeneratorDSL.g:4208:4: (lv_value_2_0= RULE_INT )
+            {
+            // InternalTestgeneratorDSL.g:4208:4: (lv_value_2_0= RULE_INT )
+            // InternalTestgeneratorDSL.g:4209:5: lv_value_2_0= RULE_INT
+            {
+            lv_value_2_0=(Token)match(input,RULE_INT,FOLLOW_2); 
+
+            					newLeafNode(lv_value_2_0, grammarAccess.getIntCompareAccess().getValueINTTerminalRuleCall_2_0());
+            				
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getIntCompareRule());
+            					}
+            					setWithLastConsumed(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"org.eclipse.xtext.common.Terminals.INT");
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIntCompare"
+
+
+    // $ANTLR start "entryRuleBooleanCompare"
+    // InternalTestgeneratorDSL.g:4229:1: entryRuleBooleanCompare returns [EObject current=null] : iv_ruleBooleanCompare= ruleBooleanCompare EOF ;
+    public final EObject entryRuleBooleanCompare() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBooleanCompare = null;
+
+
+        try {
+            // InternalTestgeneratorDSL.g:4229:55: (iv_ruleBooleanCompare= ruleBooleanCompare EOF )
+            // InternalTestgeneratorDSL.g:4230:2: iv_ruleBooleanCompare= ruleBooleanCompare EOF
+            {
+             newCompositeNode(grammarAccess.getBooleanCompareRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleBooleanCompare=ruleBooleanCompare();
+
+            state._fsp--;
+
+             current =iv_ruleBooleanCompare; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBooleanCompare"
+
+
+    // $ANTLR start "ruleBooleanCompare"
+    // InternalTestgeneratorDSL.g:4236:1: ruleBooleanCompare returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleBooleanCompareSymbol ) ) ( (lv_value_2_0= ruleBoolean ) ) ) ;
+    public final EObject ruleBooleanCompare() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Enumerator lv_compareSymbol_1_0 = null;
+
+        Enumerator lv_value_2_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:4242:2: ( ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleBooleanCompareSymbol ) ) ( (lv_value_2_0= ruleBoolean ) ) ) )
+            // InternalTestgeneratorDSL.g:4243:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleBooleanCompareSymbol ) ) ( (lv_value_2_0= ruleBoolean ) ) )
+            {
+            // InternalTestgeneratorDSL.g:4243:2: ( ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleBooleanCompareSymbol ) ) ( (lv_value_2_0= ruleBoolean ) ) )
+            // InternalTestgeneratorDSL.g:4244:3: ( (otherlv_0= RULE_ID ) ) ( (lv_compareSymbol_1_0= ruleBooleanCompareSymbol ) ) ( (lv_value_2_0= ruleBoolean ) )
+            {
+            // InternalTestgeneratorDSL.g:4244:3: ( (otherlv_0= RULE_ID ) )
+            // InternalTestgeneratorDSL.g:4245:4: (otherlv_0= RULE_ID )
+            {
+            // InternalTestgeneratorDSL.g:4245:4: (otherlv_0= RULE_ID )
+            // InternalTestgeneratorDSL.g:4246:5: otherlv_0= RULE_ID
+            {
+
+            					if (current==null) {
+            						current = createModelElement(grammarAccess.getBooleanCompareRule());
+            					}
+            				
+            otherlv_0=(Token)match(input,RULE_ID,FOLLOW_64); 
+
+            					newLeafNode(otherlv_0, grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableCrossReference_0_0());
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:4257:3: ( (lv_compareSymbol_1_0= ruleBooleanCompareSymbol ) )
+            // InternalTestgeneratorDSL.g:4258:4: (lv_compareSymbol_1_0= ruleBooleanCompareSymbol )
+            {
+            // InternalTestgeneratorDSL.g:4258:4: (lv_compareSymbol_1_0= ruleBooleanCompareSymbol )
+            // InternalTestgeneratorDSL.g:4259:5: lv_compareSymbol_1_0= ruleBooleanCompareSymbol
+            {
+
+            					newCompositeNode(grammarAccess.getBooleanCompareAccess().getCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0());
+            				
+            pushFollow(FOLLOW_38);
+            lv_compareSymbol_1_0=ruleBooleanCompareSymbol();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getBooleanCompareRule());
+            					}
+            					set(
+            						current,
+            						"compareSymbol",
+            						lv_compareSymbol_1_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.BooleanCompareSymbol");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalTestgeneratorDSL.g:4276:3: ( (lv_value_2_0= ruleBoolean ) )
+            // InternalTestgeneratorDSL.g:4277:4: (lv_value_2_0= ruleBoolean )
+            {
+            // InternalTestgeneratorDSL.g:4277:4: (lv_value_2_0= ruleBoolean )
+            // InternalTestgeneratorDSL.g:4278:5: lv_value_2_0= ruleBoolean
+            {
+
+            					newCompositeNode(grammarAccess.getBooleanCompareAccess().getValueBooleanEnumRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_2);
+            lv_value_2_0=ruleBoolean();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getBooleanCompareRule());
+            					}
+            					set(
+            						current,
+            						"value",
+            						lv_value_2_0,
+            						"de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBooleanCompare"
+
+
+    // $ANTLR start "ruleBoolean"
+    // InternalTestgeneratorDSL.g:4299:1: ruleBoolean returns [Enumerator current=null] : ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) ) ;
+    public final Enumerator ruleBoolean() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:4305:2: ( ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) ) )
+            // InternalTestgeneratorDSL.g:4306:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) )
+            {
+            // InternalTestgeneratorDSL.g:4306:2: ( (enumLiteral_0= 'true' ) | (enumLiteral_1= 'false' ) )
+            int alt60=2;
+            int LA60_0 = input.LA(1);
+
+            if ( (LA60_0==72) ) {
+                alt60=1;
+            }
+            else if ( (LA60_0==73) ) {
+                alt60=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 60, 0, input);
+
+                throw nvae;
+            }
+            switch (alt60) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:4307:3: (enumLiteral_0= 'true' )
+                    {
+                    // InternalTestgeneratorDSL.g:4307:3: (enumLiteral_0= 'true' )
+                    // InternalTestgeneratorDSL.g:4308:4: enumLiteral_0= 'true'
+                    {
+                    enumLiteral_0=(Token)match(input,72,FOLLOW_2); 
+
+                    				current = grammarAccess.getBooleanAccess().getTRUEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_0, grammarAccess.getBooleanAccess().getTRUEEnumLiteralDeclaration_0());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:4315:3: (enumLiteral_1= 'false' )
+                    {
+                    // InternalTestgeneratorDSL.g:4315:3: (enumLiteral_1= 'false' )
+                    // InternalTestgeneratorDSL.g:4316:4: enumLiteral_1= 'false'
+                    {
+                    enumLiteral_1=(Token)match(input,73,FOLLOW_2); 
+
+                    				current = grammarAccess.getBooleanAccess().getFALSEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_1, grammarAccess.getBooleanAccess().getFALSEEnumLiteralDeclaration_1());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBoolean"
+
+
+    // $ANTLR start "ruleStringCompareSymbol"
+    // InternalTestgeneratorDSL.g:4326:1: ruleStringCompareSymbol returns [Enumerator current=null] : ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) ) ;
+    public final Enumerator ruleStringCompareSymbol() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:4332:2: ( ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) ) )
+            // InternalTestgeneratorDSL.g:4333:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) )
+            {
+            // InternalTestgeneratorDSL.g:4333:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) )
+            int alt61=2;
+            int LA61_0 = input.LA(1);
+
+            if ( (LA61_0==62) ) {
+                alt61=1;
+            }
+            else if ( (LA61_0==63) ) {
+                alt61=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 61, 0, input);
+
+                throw nvae;
+            }
+            switch (alt61) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:4334:3: (enumLiteral_0= '==' )
+                    {
+                    // InternalTestgeneratorDSL.g:4334:3: (enumLiteral_0= '==' )
+                    // InternalTestgeneratorDSL.g:4335:4: enumLiteral_0= '=='
+                    {
+                    enumLiteral_0=(Token)match(input,62,FOLLOW_2); 
+
+                    				current = grammarAccess.getStringCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_0, grammarAccess.getStringCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:4342:3: (enumLiteral_1= '!=' )
+                    {
+                    // InternalTestgeneratorDSL.g:4342:3: (enumLiteral_1= '!=' )
+                    // InternalTestgeneratorDSL.g:4343:4: enumLiteral_1= '!='
+                    {
+                    enumLiteral_1=(Token)match(input,63,FOLLOW_2); 
+
+                    				current = grammarAccess.getStringCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_1, grammarAccess.getStringCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStringCompareSymbol"
+
+
+    // $ANTLR start "ruleIntCompareSymbol"
+    // InternalTestgeneratorDSL.g:4353:1: ruleIntCompareSymbol returns [Enumerator current=null] : ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '>' ) | (enumLiteral_4= '<=' ) | (enumLiteral_5= '>=' ) ) ;
+    public final Enumerator ruleIntCompareSymbol() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+        Token enumLiteral_2=null;
+        Token enumLiteral_3=null;
+        Token enumLiteral_4=null;
+        Token enumLiteral_5=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:4359:2: ( ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '>' ) | (enumLiteral_4= '<=' ) | (enumLiteral_5= '>=' ) ) )
+            // InternalTestgeneratorDSL.g:4360:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '>' ) | (enumLiteral_4= '<=' ) | (enumLiteral_5= '>=' ) )
+            {
+            // InternalTestgeneratorDSL.g:4360:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) | (enumLiteral_2= '<' ) | (enumLiteral_3= '>' ) | (enumLiteral_4= '<=' ) | (enumLiteral_5= '>=' ) )
+            int alt62=6;
+            switch ( input.LA(1) ) {
+            case 62:
+                {
+                alt62=1;
+                }
+                break;
+            case 63:
+                {
+                alt62=2;
+                }
+                break;
+            case 74:
+                {
+                alt62=3;
+                }
+                break;
+            case 75:
+                {
+                alt62=4;
+                }
+                break;
+            case 76:
+                {
+                alt62=5;
+                }
+                break;
+            case 77:
+                {
+                alt62=6;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 62, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt62) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:4361:3: (enumLiteral_0= '==' )
+                    {
+                    // InternalTestgeneratorDSL.g:4361:3: (enumLiteral_0= '==' )
+                    // InternalTestgeneratorDSL.g:4362:4: enumLiteral_0= '=='
+                    {
+                    enumLiteral_0=(Token)match(input,62,FOLLOW_2); 
+
+                    				current = grammarAccess.getIntCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_0, grammarAccess.getIntCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:4369:3: (enumLiteral_1= '!=' )
+                    {
+                    // InternalTestgeneratorDSL.g:4369:3: (enumLiteral_1= '!=' )
+                    // InternalTestgeneratorDSL.g:4370:4: enumLiteral_1= '!='
+                    {
+                    enumLiteral_1=(Token)match(input,63,FOLLOW_2); 
+
+                    				current = grammarAccess.getIntCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_1, grammarAccess.getIntCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalTestgeneratorDSL.g:4377:3: (enumLiteral_2= '<' )
+                    {
+                    // InternalTestgeneratorDSL.g:4377:3: (enumLiteral_2= '<' )
+                    // InternalTestgeneratorDSL.g:4378:4: enumLiteral_2= '<'
+                    {
+                    enumLiteral_2=(Token)match(input,74,FOLLOW_2); 
+
+                    				current = grammarAccess.getIntCompareSymbolAccess().getLOWEREnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_2, grammarAccess.getIntCompareSymbolAccess().getLOWEREnumLiteralDeclaration_2());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // InternalTestgeneratorDSL.g:4385:3: (enumLiteral_3= '>' )
+                    {
+                    // InternalTestgeneratorDSL.g:4385:3: (enumLiteral_3= '>' )
+                    // InternalTestgeneratorDSL.g:4386:4: enumLiteral_3= '>'
+                    {
+                    enumLiteral_3=(Token)match(input,75,FOLLOW_2); 
+
+                    				current = grammarAccess.getIntCompareSymbolAccess().getGREATEREnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_3, grammarAccess.getIntCompareSymbolAccess().getGREATEREnumLiteralDeclaration_3());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // InternalTestgeneratorDSL.g:4393:3: (enumLiteral_4= '<=' )
+                    {
+                    // InternalTestgeneratorDSL.g:4393:3: (enumLiteral_4= '<=' )
+                    // InternalTestgeneratorDSL.g:4394:4: enumLiteral_4= '<='
+                    {
+                    enumLiteral_4=(Token)match(input,76,FOLLOW_2); 
+
+                    				current = grammarAccess.getIntCompareSymbolAccess().getLOWER_EQUALSEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_4, grammarAccess.getIntCompareSymbolAccess().getLOWER_EQUALSEnumLiteralDeclaration_4());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // InternalTestgeneratorDSL.g:4401:3: (enumLiteral_5= '>=' )
+                    {
+                    // InternalTestgeneratorDSL.g:4401:3: (enumLiteral_5= '>=' )
+                    // InternalTestgeneratorDSL.g:4402:4: enumLiteral_5= '>='
+                    {
+                    enumLiteral_5=(Token)match(input,77,FOLLOW_2); 
+
+                    				current = grammarAccess.getIntCompareSymbolAccess().getGREATER_EQUALSEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_5, grammarAccess.getIntCompareSymbolAccess().getGREATER_EQUALSEnumLiteralDeclaration_5());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleIntCompareSymbol"
+
+
+    // $ANTLR start "ruleBooleanCompareSymbol"
+    // InternalTestgeneratorDSL.g:4412:1: ruleBooleanCompareSymbol returns [Enumerator current=null] : ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) ) ;
+    public final Enumerator ruleBooleanCompareSymbol() throws RecognitionException {
+        Enumerator current = null;
+
+        Token enumLiteral_0=null;
+        Token enumLiteral_1=null;
+
+
+        	enterRule();
+
+        try {
+            // InternalTestgeneratorDSL.g:4418:2: ( ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) ) )
+            // InternalTestgeneratorDSL.g:4419:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) )
+            {
+            // InternalTestgeneratorDSL.g:4419:2: ( (enumLiteral_0= '==' ) | (enumLiteral_1= '!=' ) )
+            int alt63=2;
+            int LA63_0 = input.LA(1);
+
+            if ( (LA63_0==62) ) {
+                alt63=1;
+            }
+            else if ( (LA63_0==63) ) {
+                alt63=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 63, 0, input);
+
+                throw nvae;
+            }
+            switch (alt63) {
+                case 1 :
+                    // InternalTestgeneratorDSL.g:4420:3: (enumLiteral_0= '==' )
+                    {
+                    // InternalTestgeneratorDSL.g:4420:3: (enumLiteral_0= '==' )
+                    // InternalTestgeneratorDSL.g:4421:4: enumLiteral_0= '=='
+                    {
+                    enumLiteral_0=(Token)match(input,62,FOLLOW_2); 
+
+                    				current = grammarAccess.getBooleanCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_0, grammarAccess.getBooleanCompareSymbolAccess().getEQUALSEnumLiteralDeclaration_0());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // InternalTestgeneratorDSL.g:4428:3: (enumLiteral_1= '!=' )
+                    {
+                    // InternalTestgeneratorDSL.g:4428:3: (enumLiteral_1= '!=' )
+                    // InternalTestgeneratorDSL.g:4429:4: enumLiteral_1= '!='
+                    {
+                    enumLiteral_1=(Token)match(input,63,FOLLOW_2); 
+
+                    				current = grammarAccess.getBooleanCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+                    				newLeafNode(enumLiteral_1, grammarAccess.getBooleanCompareSymbolAccess().getNOT_EQUALSEnumLiteralDeclaration_1());
+                    			
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBooleanCompareSymbol"
+
+    // Delegated rules
+
+
+    protected DFA9 dfa9 = new DFA9(this);
+    static final String dfa_1s = "\15\uffff";
+    static final String dfa_2s = "\1\27\1\4\1\6\1\30\11\uffff";
+    static final String dfa_3s = "\1\27\1\4\1\6\1\45\11\uffff";
+    static final String dfa_4s = "\4\uffff\1\11\1\2\1\1\1\10\1\6\1\5\1\7\1\4\1\3";
+    static final String dfa_5s = "\15\uffff}>";
+    static final String[] dfa_6s = {
+            "\1\1",
+            "\1\2",
+            "\1\3",
+            "\1\6\1\uffff\1\5\1\14\1\13\1\11\1\10\4\uffff\1\12\1\7\1\4",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final char[] dfa_2 = DFA.unpackEncodedStringToUnsignedChars(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final short[] dfa_4 = DFA.unpackEncodedString(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[][] dfa_6 = unpackEncodedStringArray(dfa_6s);
+
+    class DFA9 extends DFA {
+
+        public DFA9(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 9;
+            this.eot = dfa_1;
+            this.eof = dfa_1;
+            this.min = dfa_2;
+            this.max = dfa_3;
+            this.accept = dfa_4;
+            this.special = dfa_5;
+            this.transition = dfa_6;
+        }
+        public String getDescription() {
+            return "490:2: (this_StartFlowElement_0= ruleStartFlowElement | this_EndFlowElement_1= ruleEndFlowElement | this_UserTaskFlowElement_2= ruleUserTaskFlowElement | this_ManualTaskFlowElement_3= ruleManualTaskFlowElement | this_ScriptTaskFlowElement_4= ruleScriptTaskFlowElement | this_ServiceTaskFlowElement_5= ruleServiceTaskFlowElement | this_BusinessRuleTaskFlowElement_6= ruleBusinessRuleTaskFlowElement | this_GatewayFlowElement_7= ruleGatewayFlowElement | this_SequenceFlowElement_8= ruleSequenceFlowElement )";
+        }
+    }
+ 
+
+    public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
+    public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x01101D8000810002L,0x0000000000000005L});
+    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000040000L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000100000L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000020400L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000200000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000220L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000000300L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000400000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000001000000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000210L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000004000000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000008000000L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000020000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000100000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000400000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000020000000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000A00L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000800L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000200L,0x0000000000000300L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000300L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0001000000000000L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0002000000000000L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0008000000000000L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0020000000000000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0040000000000000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0080000000000400L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0200000000000000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000020500L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0800000000000000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x1000000000000000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x2000000000000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x4000000000000000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x8000000000000000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000500L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+    public static final BitSet FOLLOW_64 = new BitSet(new long[]{0xC000000000000000L});
+    public static final BitSet FOLLOW_65 = new BitSet(new long[]{0xC000000000000000L,0x0000000000003C00L});
+
+=======
 package de.fhmuenster.masterthesis.parser.antlr.internal;
 
 import org.eclipse.xtext.*;
@@ -11014,4 +22031,5 @@ public class InternalTestgeneratorDSLParser extends AbstractInternalAntlrParser
     public static final BitSet FOLLOW_64 = new BitSet(new long[]{0xC000000000000000L});
     public static final BitSet FOLLOW_65 = new BitSet(new long[]{0xC000000000000000L,0x0000000000003C00L});
 
+>>>>>>> master
 }
\ No newline at end of file
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/scoping/AbstractTestgeneratorDSLScopeProvider.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/scoping/AbstractTestgeneratorDSLScopeProvider.java
index b38128e33aac9ef5dd4e93f72cdeeabeddb57720..dca2d30fe698f986ade839e5857a3041222671f5 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/scoping/AbstractTestgeneratorDSLScopeProvider.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/scoping/AbstractTestgeneratorDSLScopeProvider.java
@@ -1,3 +1,14 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.scoping;
+
+import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider;
+
+public abstract class AbstractTestgeneratorDSLScopeProvider extends DelegatingScopeProvider {
+}
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -7,3 +18,4 @@ import org.eclipse.xtext.scoping.impl.DelegatingScopeProvider;
 
 public abstract class AbstractTestgeneratorDSLScopeProvider extends DelegatingScopeProvider {
 }
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/serializer/TestgeneratorDSLSemanticSequencer.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/serializer/TestgeneratorDSLSemanticSequencer.java
index 6260842c430ebc4244423235e0c1f57621a66192..f92a35ceeefbfda5e6ae93e6ccf7081db64aec8d 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/serializer/TestgeneratorDSLSemanticSequencer.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/serializer/TestgeneratorDSLSemanticSequencer.java
@@ -1,3 +1,1042 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.serializer;
+
+import com.google.inject.Inject;
+import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Loop;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Model;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference;
+import java.util.Set;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.Action;
+import org.eclipse.xtext.Parameter;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.serializer.ISerializationContext;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+
+@SuppressWarnings("all")
+public class TestgeneratorDSLSemanticSequencer extends AbstractDelegatingSemanticSequencer {
+
+	@Inject
+	private TestgeneratorDSLGrammarAccess grammarAccess;
+	
+	@Override
+	public void sequence(ISerializationContext context, EObject semanticObject) {
+		EPackage epackage = semanticObject.eClass().getEPackage();
+		ParserRule rule = context.getParserRule();
+		Action action = context.getAssignedAction();
+		Set<Parameter> parameters = context.getEnabledBooleanParameters();
+		if (epackage == TestgeneratorDSLPackage.eINSTANCE)
+			switch (semanticObject.eClass().getClassifierID()) {
+			case TestgeneratorDSLPackage.BPMN_DIAGRAM:
+				sequence_BPMNDiagram(context, (BPMNDiagram) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.BPMN_REFERENCE:
+				sequence_BPMNReference(context, (BPMNReference) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.BOOLEAN_COMPARE:
+				sequence_BooleanCompare(context, (BooleanCompare) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.BOOLEAN_VARIABLE:
+				sequence_BooleanVariable(context, (BooleanVariable) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION:
+				sequence_BooleanVariableDeclaration(context, (BooleanVariableDeclaration) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS:
+				sequence_BooleanVariableEquals(context, (BooleanVariableEquals) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS:
+				sequence_BooleanVariableNotEquals(context, (BooleanVariableNotEquals) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.BUSINESS_RULE_TASK_FLOW_ELEMENT:
+				sequence_BusinessRuleTaskFlowElement(context, (BusinessRuleTaskFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.DELEGATE_MOCK:
+				sequence_DelegateMock(context, (DelegateMock) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_FLOW_ELEMENT:
+				sequence_DelegateServiceTaskFlowElement(context, (DelegateServiceTaskFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE:
+				sequence_DelegateServiceTaskReference(context, (DelegateServiceTaskReference) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.END_CHECKS:
+				sequence_EndChecks(context, (EndChecks) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.END_FLOW_ELEMENT:
+				sequence_EndFlowElement(context, (EndFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK:
+				sequence_ExternalServiceMock(context, (ExternalServiceMock) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT:
+				sequence_ExternalServiceTaskFlowElement(context, (ExternalServiceTaskFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.EXTERNAL_TOPIC:
+				sequence_ExternalTopic(context, (ExternalTopic) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE:
+				sequence_ExternalTopicReference(context, (ExternalTopicReference) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.FLOW:
+				sequence_Flow(context, (Flow) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE:
+				sequence_FlowElementReference(context, (FlowElementReference) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.FLOW_REFERENCE:
+				sequence_FlowReference(context, (FlowReference) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.GATEWAY_FLOW_ELEMENT:
+				sequence_GatewayFlowElement(context, (GatewayFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.INT_COMPARE:
+				sequence_IntCompare(context, (IntCompare) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.INT_VARIABLE:
+				sequence_IntVariable(context, (IntVariable) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION:
+				sequence_IntVariableDeclaration(context, (IntVariableDeclaration) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS:
+				sequence_IntVariableEquals(context, (IntVariableEquals) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS:
+				sequence_IntVariableNotEquals(context, (IntVariableNotEquals) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.LOOP:
+				sequence_Loop(context, (Loop) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.MANUAL_MOCK:
+				sequence_ManualMock(context, (ManualMock) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.MANUAL_TASK_FLOW_ELEMENT:
+				sequence_ManualTaskFlowElement(context, (ManualTaskFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.MOCK_REFERENCE:
+				sequence_MockReference(context, (MockReference) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.MOCKING_RULE:
+				sequence_MockingRule(context, (MockingRule) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.MODEL:
+				sequence_Model(context, (Model) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.SCRIPT_TASK_FLOW_ELEMENT:
+				sequence_ScriptTaskFlowElement(context, (ScriptTaskFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.SEQUENCE_FLOW_ELEMENT:
+				sequence_SequenceFlowElement(context, (SequenceFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.START_FLOW_ELEMENT:
+				sequence_StartFlowElement(context, (StartFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.STRING_COMPARE:
+				sequence_StringCompare(context, (StringCompare) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.STRING_VARIABLE:
+				sequence_StringVariable(context, (StringVariable) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION:
+				sequence_StringVariableDeclaration(context, (StringVariableDeclaration) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS:
+				sequence_StringVariableEquals(context, (StringVariableEquals) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS:
+				sequence_StringVariableNotEquals(context, (StringVariableNotEquals) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.TEST:
+				sequence_Test(context, (Test) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT:
+				sequence_UserTaskFlowElement(context, (UserTaskFlowElement) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS:
+				sequence_VariableDeclarations(context, (VariableDeclarations) semanticObject); 
+				return; 
+			case TestgeneratorDSLPackage.VARIABLE_REFERENCE:
+				sequence_VariableReference(context, (VariableReference) semanticObject); 
+				return; 
+			}
+		if (errorAcceptor != null)
+			errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+	}
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns BPMNDiagram
+	 *     BPMNDiagram returns BPMNDiagram
+	 *
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         testpackage=STRING 
+	 *         bpmn=STRING 
+	 *         key=STRING 
+	 *         (dmn+=STRING dmn+=STRING*)? 
+	 *         (embedded+=STRING embedded+=STRING*)?
+	 *     )
+	 */
+	protected void sequence_BPMNDiagram(ISerializationContext context, BPMNDiagram semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     BPMNReference returns BPMNReference
+	 *
+	 * Constraint:
+	 *     ref=[BPMNDiagram|ID]
+	 */
+	protected void sequence_BPMNReference(ISerializationContext context, BPMNReference semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BPMN_REFERENCE__REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BPMN_REFERENCE__REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getBPMNReferenceAccess().getRefBPMNDiagramIDTerminalRuleCall_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.BPMN_REFERENCE__REF, false));
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Compare returns BooleanCompare
+	 *     BooleanCompare returns BooleanCompare
+	 *
+	 * Constraint:
+	 *     (key=[BooleanVariable|ID] compareSymbol=BooleanCompareSymbol value=Boolean)
+	 */
+	protected void sequence_BooleanCompare(ISerializationContext context, BooleanCompare semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_COMPARE__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_COMPARE__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_COMPARE__COMPARE_SYMBOL) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_COMPARE__COMPARE_SYMBOL));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_COMPARE__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_COMPARE__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getBooleanCompareAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.BOOLEAN_COMPARE__KEY, false));
+		feeder.accept(grammarAccess.getBooleanCompareAccess().getCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0(), semanticObject.getCompareSymbol());
+		feeder.accept(grammarAccess.getBooleanCompareAccess().getValueBooleanEnumRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     VariableDeclaration returns BooleanVariableDeclaration
+	 *     BooleanVariableDeclaration returns BooleanVariableDeclaration
+	 *
+	 * Constraint:
+	 *     (key=[BooleanVariable|ID] value=Boolean)
+	 */
+	protected void sequence_BooleanVariableDeclaration(ISerializationContext context, BooleanVariableDeclaration semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_DECLARATION__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_DECLARATION__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_DECLARATION__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_DECLARATION__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getBooleanVariableDeclarationAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_DECLARATION__KEY, false));
+		feeder.accept(grammarAccess.getBooleanVariableDeclarationAccess().getValueBooleanEnumRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     EndCheck returns BooleanVariableEquals
+	 *     VariableEquals returns BooleanVariableEquals
+	 *     BooleanVariableEquals returns BooleanVariableEquals
+	 *
+	 * Constraint:
+	 *     (key=[BooleanVariable|ID] value=Boolean)
+	 */
+	protected void sequence_BooleanVariableEquals(ISerializationContext context, BooleanVariableEquals semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_EQUALS__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_EQUALS__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_EQUALS__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_EQUALS__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getBooleanVariableEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_EQUALS__KEY, false));
+		feeder.accept(grammarAccess.getBooleanVariableEqualsAccess().getValueBooleanEnumRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     EndCheck returns BooleanVariableNotEquals
+	 *     VariableNotEquals returns BooleanVariableNotEquals
+	 *     BooleanVariableNotEquals returns BooleanVariableNotEquals
+	 *
+	 * Constraint:
+	 *     (key=[BooleanVariable|ID] value=Boolean)
+	 */
+	protected void sequence_BooleanVariableNotEquals(ISerializationContext context, BooleanVariableNotEquals semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_NOT_EQUALS__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_NOT_EQUALS__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_NOT_EQUALS__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_NOT_EQUALS__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getBooleanVariableNotEqualsAccess().getKeyBooleanVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_NOT_EQUALS__KEY, false));
+		feeder.accept(grammarAccess.getBooleanVariableNotEqualsAccess().getValueBooleanEnumRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns BooleanVariable
+	 *     Variable returns BooleanVariable
+	 *     BooleanVariable returns BooleanVariable
+	 *
+	 * Constraint:
+	 *     (name=ID (proposals+=Boolean proposals+=Boolean*)?)
+	 */
+	protected void sequence_BooleanVariable(ISerializationContext context, BooleanVariable semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns BusinessRuleTaskFlowElement
+	 *     FlowElement returns BusinessRuleTaskFlowElement
+	 *     BusinessRuleTaskFlowElement returns BusinessRuleTaskFlowElement
+	 *
+	 * Constraint:
+	 *     name=ID
+	 */
+	protected void sequence_BusinessRuleTaskFlowElement(ISerializationContext context, BusinessRuleTaskFlowElement semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getBusinessRuleTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns DelegateMock
+	 *     Mock returns DelegateMock
+	 *     DelegateMock returns DelegateMock
+	 *
+	 * Constraint:
+	 *     (name=ID serviceTaskReference=DelegateServiceTaskReference delegateClass=STRING (manualMocks+=ManualMock manualMocks+=ManualMock*)?)
+	 */
+	protected void sequence_DelegateMock(ISerializationContext context, DelegateMock semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns DelegateServiceTaskFlowElement
+	 *     FlowElement returns DelegateServiceTaskFlowElement
+	 *     ServiceTaskFlowElement returns DelegateServiceTaskFlowElement
+	 *     DelegateServiceTaskFlowElement returns DelegateServiceTaskFlowElement
+	 *
+	 * Constraint:
+	 *     (name=ID delegate=STRING)
+	 */
+	protected void sequence_DelegateServiceTaskFlowElement(ISerializationContext context, DelegateServiceTaskFlowElement semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getDelegateServiceTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getDelegateServiceTaskFlowElementAccess().getDelegateSTRINGTerminalRuleCall_7_0(), semanticObject.getDelegate());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     DelegateServiceTaskReference returns DelegateServiceTaskReference
+	 *
+	 * Constraint:
+	 *     ref=[DelegateServiceTaskFlowElement|ID]
+	 */
+	protected void sequence_DelegateServiceTaskReference(ISerializationContext context, DelegateServiceTaskReference semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DELEGATE_SERVICE_TASK_REFERENCE__REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DELEGATE_SERVICE_TASK_REFERENCE__REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getDelegateServiceTaskReferenceAccess().getRefDelegateServiceTaskFlowElementIDTerminalRuleCall_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.DELEGATE_SERVICE_TASK_REFERENCE__REF, false));
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     EndChecks returns EndChecks
+	 *
+	 * Constraint:
+	 *     (endChecks+=EndCheck endChecks+=EndCheck*)
+	 */
+	protected void sequence_EndChecks(ISerializationContext context, EndChecks semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns EndFlowElement
+	 *     FlowElement returns EndFlowElement
+	 *     EndFlowElement returns EndFlowElement
+	 *
+	 * Constraint:
+	 *     name=ID
+	 */
+	protected void sequence_EndFlowElement(ISerializationContext context, EndFlowElement semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getEndFlowElementAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns ExternalServiceMock
+	 *     Mock returns ExternalServiceMock
+	 *     ExternalServiceMock returns ExternalServiceMock
+	 *
+	 * Constraint:
+	 *     (name=ID externalTopic=ExternalTopicReference (mockingRules+=MockingRule mockingRules+=MockingRule*)?)
+	 */
+	protected void sequence_ExternalServiceMock(ISerializationContext context, ExternalServiceMock semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns ExternalServiceTaskFlowElement
+	 *     FlowElement returns ExternalServiceTaskFlowElement
+	 *     ServiceTaskFlowElement returns ExternalServiceTaskFlowElement
+	 *     ExternalServiceTaskFlowElement returns ExternalServiceTaskFlowElement
+	 *
+	 * Constraint:
+	 *     (name=ID externalTopic=ExternalTopicReference (hardcodedInputs+=VariableDeclaration hardcodedInputs+=VariableDeclaration*)?)
+	 */
+	protected void sequence_ExternalServiceTaskFlowElement(ISerializationContext context, ExternalServiceTaskFlowElement semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     ExternalTopicReference returns ExternalTopicReference
+	 *
+	 * Constraint:
+	 *     ref=[ExternalTopic|ID]
+	 */
+	protected void sequence_ExternalTopicReference(ISerializationContext context, ExternalTopicReference semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.EXTERNAL_TOPIC_REFERENCE__REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.EXTERNAL_TOPIC_REFERENCE__REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getExternalTopicReferenceAccess().getRefExternalTopicIDTerminalRuleCall_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.EXTERNAL_TOPIC_REFERENCE__REF, false));
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns ExternalTopic
+	 *     ExternalTopic returns ExternalTopic
+	 *
+	 * Constraint:
+	 *     name=ID
+	 */
+	protected void sequence_ExternalTopic(ISerializationContext context, ExternalTopic semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getExternalTopicAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     FlowElementReference returns FlowElementReference
+	 *
+	 * Constraint:
+	 *     ref=[FlowElement|ID]
+	 */
+	protected void sequence_FlowElementReference(ISerializationContext context, FlowElementReference semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.FLOW_ELEMENT_REFERENCE__REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.FLOW_ELEMENT_REFERENCE__REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getFlowElementReferenceAccess().getRefFlowElementIDTerminalRuleCall_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.FLOW_ELEMENT_REFERENCE__REF, false));
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     FlowReference returns FlowReference
+	 *
+	 * Constraint:
+	 *     ref=[Flow|ID]
+	 */
+	protected void sequence_FlowReference(ISerializationContext context, FlowReference semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.FLOW_REFERENCE__REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.FLOW_REFERENCE__REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getFlowReferenceAccess().getRefFlowIDTerminalRuleCall_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.FLOW_REFERENCE__REF, false));
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns Flow
+	 *     Flow returns Flow
+	 *
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         bpmnReference=BPMNReference 
+	 *         (inclElements+=FlowElementReference inclElements+=FlowElementReference*)? 
+	 *         (exclElements+=FlowElementReference exclElements+=FlowElementReference*)?
+	 *     )
+	 */
+	protected void sequence_Flow(ISerializationContext context, Flow semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns GatewayFlowElement
+	 *     FlowElement returns GatewayFlowElement
+	 *     GatewayFlowElement returns GatewayFlowElement
+	 *
+	 * Constraint:
+	 *     name=ID
+	 */
+	protected void sequence_GatewayFlowElement(ISerializationContext context, GatewayFlowElement semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getGatewayFlowElementAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Compare returns IntCompare
+	 *     IntCompare returns IntCompare
+	 *
+	 * Constraint:
+	 *     (key=[IntVariable|ID] compareSymbol=IntCompareSymbol value=INT)
+	 */
+	protected void sequence_IntCompare(ISerializationContext context, IntCompare semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_COMPARE__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_COMPARE__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_COMPARE__COMPARE_SYMBOL) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_COMPARE__COMPARE_SYMBOL));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_COMPARE__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_COMPARE__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getIntCompareAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.INT_COMPARE__KEY, false));
+		feeder.accept(grammarAccess.getIntCompareAccess().getCompareSymbolIntCompareSymbolEnumRuleCall_1_0(), semanticObject.getCompareSymbol());
+		feeder.accept(grammarAccess.getIntCompareAccess().getValueINTTerminalRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     VariableDeclaration returns IntVariableDeclaration
+	 *     IntVariableDeclaration returns IntVariableDeclaration
+	 *
+	 * Constraint:
+	 *     (key=[IntVariable|ID] value=INT)
+	 */
+	protected void sequence_IntVariableDeclaration(ISerializationContext context, IntVariableDeclaration semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_DECLARATION__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_DECLARATION__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_DECLARATION__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_DECLARATION__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getIntVariableDeclarationAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.INT_VARIABLE_DECLARATION__KEY, false));
+		feeder.accept(grammarAccess.getIntVariableDeclarationAccess().getValueINTTerminalRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     EndCheck returns IntVariableEquals
+	 *     VariableEquals returns IntVariableEquals
+	 *     IntVariableEquals returns IntVariableEquals
+	 *
+	 * Constraint:
+	 *     (key=[IntVariable|ID] value=INT)
+	 */
+	protected void sequence_IntVariableEquals(ISerializationContext context, IntVariableEquals semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_EQUALS__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_EQUALS__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_EQUALS__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_EQUALS__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getIntVariableEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.INT_VARIABLE_EQUALS__KEY, false));
+		feeder.accept(grammarAccess.getIntVariableEqualsAccess().getValueINTTerminalRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     EndCheck returns IntVariableNotEquals
+	 *     VariableNotEquals returns IntVariableNotEquals
+	 *     IntVariableNotEquals returns IntVariableNotEquals
+	 *
+	 * Constraint:
+	 *     (key=[IntVariable|ID] value=INT)
+	 */
+	protected void sequence_IntVariableNotEquals(ISerializationContext context, IntVariableNotEquals semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_NOT_EQUALS__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_NOT_EQUALS__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_NOT_EQUALS__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.INT_VARIABLE_NOT_EQUALS__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getIntVariableNotEqualsAccess().getKeyIntVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.INT_VARIABLE_NOT_EQUALS__KEY, false));
+		feeder.accept(grammarAccess.getIntVariableNotEqualsAccess().getValueINTTerminalRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns IntVariable
+	 *     Variable returns IntVariable
+	 *     IntVariable returns IntVariable
+	 *
+	 * Constraint:
+	 *     (name=ID (proposals+=INT proposals+=INT*)?)
+	 */
+	protected void sequence_IntVariable(ISerializationContext context, IntVariable semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns Loop
+	 *     Loop returns Loop
+	 *
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         start=STRING 
+	 *         follower=STRING 
+	 *         end=STRING 
+	 *         complexity=INT 
+	 *         (frequencies+=INT frequencies+=INT*)?
+	 *     )
+	 */
+	protected void sequence_Loop(ISerializationContext context, Loop semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     ManualMock returns ManualMock
+	 *
+	 * Constraint:
+	 *     (serviceName=STRING setter=STRING)
+	 */
+	protected void sequence_ManualMock(ISerializationContext context, ManualMock semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.MANUAL_MOCK__SERVICE_NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.MANUAL_MOCK__SERVICE_NAME));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.MANUAL_MOCK__SETTER) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.MANUAL_MOCK__SETTER));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getManualMockAccess().getServiceNameSTRINGTerminalRuleCall_2_0(), semanticObject.getServiceName());
+		feeder.accept(grammarAccess.getManualMockAccess().getSetterSTRINGTerminalRuleCall_5_0(), semanticObject.getSetter());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns ManualTaskFlowElement
+	 *     FlowElement returns ManualTaskFlowElement
+	 *     ManualTaskFlowElement returns ManualTaskFlowElement
+	 *
+	 * Constraint:
+	 *     name=ID
+	 */
+	protected void sequence_ManualTaskFlowElement(ISerializationContext context, ManualTaskFlowElement semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getManualTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     MockReference returns MockReference
+	 *
+	 * Constraint:
+	 *     ref=[Mock|ID]
+	 */
+	protected void sequence_MockReference(ISerializationContext context, MockReference semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.MOCK_REFERENCE__REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.MOCK_REFERENCE__REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getMockReferenceAccess().getRefMockIDTerminalRuleCall_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.MOCK_REFERENCE__REF, false));
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     MockingRule returns MockingRule
+	 *
+	 * Constraint:
+	 *     ((comparisons+=Compare comparisons+=Compare*)? (variables+=VariableDeclaration variables+=VariableDeclaration*)?)
+	 */
+	protected void sequence_MockingRule(ISerializationContext context, MockingRule semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Model returns Model
+	 *
+	 * Constraint:
+	 *     declarations+=Declaration+
+	 */
+	protected void sequence_Model(ISerializationContext context, Model semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns ScriptTaskFlowElement
+	 *     FlowElement returns ScriptTaskFlowElement
+	 *     ScriptTaskFlowElement returns ScriptTaskFlowElement
+	 *
+	 * Constraint:
+	 *     name=ID
+	 */
+	protected void sequence_ScriptTaskFlowElement(ISerializationContext context, ScriptTaskFlowElement semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.DECLARATION__NAME));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getScriptTaskFlowElementAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns SequenceFlowElement
+	 *     FlowElement returns SequenceFlowElement
+	 *     SequenceFlowElement returns SequenceFlowElement
+	 *
+	 * Constraint:
+	 *     (name=ID expression=STRING?)
+	 */
+	protected void sequence_SequenceFlowElement(ISerializationContext context, SequenceFlowElement semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns StartFlowElement
+	 *     FlowElement returns StartFlowElement
+	 *     StartFlowElement returns StartFlowElement
+	 *
+	 * Constraint:
+	 *     (name=ID (inputVariables+=VariableReference inputVariables+=VariableReference*)?)
+	 */
+	protected void sequence_StartFlowElement(ISerializationContext context, StartFlowElement semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Compare returns StringCompare
+	 *     StringCompare returns StringCompare
+	 *
+	 * Constraint:
+	 *     (key=[StringVariable|ID] compareSymbol=StringCompareSymbol value=STRING)
+	 */
+	protected void sequence_StringCompare(ISerializationContext context, StringCompare semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_COMPARE__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_COMPARE__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_COMPARE__COMPARE_SYMBOL) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_COMPARE__COMPARE_SYMBOL));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_COMPARE__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_COMPARE__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getStringCompareAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.STRING_COMPARE__KEY, false));
+		feeder.accept(grammarAccess.getStringCompareAccess().getCompareSymbolStringCompareSymbolEnumRuleCall_1_0(), semanticObject.getCompareSymbol());
+		feeder.accept(grammarAccess.getStringCompareAccess().getValueSTRINGTerminalRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     VariableDeclaration returns StringVariableDeclaration
+	 *     StringVariableDeclaration returns StringVariableDeclaration
+	 *
+	 * Constraint:
+	 *     (key=[StringVariable|ID] value=STRING)
+	 */
+	protected void sequence_StringVariableDeclaration(ISerializationContext context, StringVariableDeclaration semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_DECLARATION__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_DECLARATION__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_DECLARATION__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_DECLARATION__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getStringVariableDeclarationAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.STRING_VARIABLE_DECLARATION__KEY, false));
+		feeder.accept(grammarAccess.getStringVariableDeclarationAccess().getValueSTRINGTerminalRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     EndCheck returns StringVariableEquals
+	 *     VariableEquals returns StringVariableEquals
+	 *     StringVariableEquals returns StringVariableEquals
+	 *
+	 * Constraint:
+	 *     (key=[StringVariable|ID] value=STRING)
+	 */
+	protected void sequence_StringVariableEquals(ISerializationContext context, StringVariableEquals semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_EQUALS__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_EQUALS__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_EQUALS__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_EQUALS__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getStringVariableEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.STRING_VARIABLE_EQUALS__KEY, false));
+		feeder.accept(grammarAccess.getStringVariableEqualsAccess().getValueSTRINGTerminalRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     EndCheck returns StringVariableNotEquals
+	 *     VariableNotEquals returns StringVariableNotEquals
+	 *     StringVariableNotEquals returns StringVariableNotEquals
+	 *
+	 * Constraint:
+	 *     (key=[StringVariable|ID] value=STRING)
+	 */
+	protected void sequence_StringVariableNotEquals(ISerializationContext context, StringVariableNotEquals semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_NOT_EQUALS__KEY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_NOT_EQUALS__KEY));
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_NOT_EQUALS__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.STRING_VARIABLE_NOT_EQUALS__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getStringVariableNotEqualsAccess().getKeyStringVariableIDTerminalRuleCall_0_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.STRING_VARIABLE_NOT_EQUALS__KEY, false));
+		feeder.accept(grammarAccess.getStringVariableNotEqualsAccess().getValueSTRINGTerminalRuleCall_2_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns StringVariable
+	 *     Variable returns StringVariable
+	 *     StringVariable returns StringVariable
+	 *
+	 * Constraint:
+	 *     (name=ID (proposals+=STRING proposals+=STRING*)?)
+	 */
+	protected void sequence_StringVariable(ISerializationContext context, StringVariable semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns Test
+	 *     Test returns Test
+	 *
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         flowReference=FlowReference 
+	 *         priority=INT? 
+	 *         (declarations+=VariableDeclarations declarations+=VariableDeclarations*)? 
+	 *         endCheck=EndChecks? 
+	 *         (mocks+=MockReference mocks+=MockReference*)?
+	 *     )
+	 */
+	protected void sequence_Test(ISerializationContext context, Test semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     Declaration returns UserTaskFlowElement
+	 *     FlowElement returns UserTaskFlowElement
+	 *     UserTaskFlowElement returns UserTaskFlowElement
+	 *
+	 * Constraint:
+	 *     (name=ID (inputVariables+=VariableReference inputVariables+=VariableReference*)?)
+	 */
+	protected void sequence_UserTaskFlowElement(ISerializationContext context, UserTaskFlowElement semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     VariableDeclarations returns VariableDeclarations
+	 *
+	 * Constraint:
+	 *     (taskReference=FlowElementReference (variables+=VariableDeclaration variables+=VariableDeclaration*)?)
+	 */
+	protected void sequence_VariableDeclarations(ISerializationContext context, VariableDeclarations semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Contexts:
+	 *     VariableReference returns VariableReference
+	 *
+	 * Constraint:
+	 *     ref=[Variable|ID]
+	 */
+	protected void sequence_VariableReference(ISerializationContext context, VariableReference semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, TestgeneratorDSLPackage.Literals.VARIABLE_REFERENCE__REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, TestgeneratorDSLPackage.Literals.VARIABLE_REFERENCE__REF));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getVariableReferenceAccess().getRefVariableIDTerminalRuleCall_0_1(), semanticObject.eGet(TestgeneratorDSLPackage.Literals.VARIABLE_REFERENCE__REF, false));
+		feeder.finish();
+	}
+	
+	
+}
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -1028,3 +2067,4 @@ public class TestgeneratorDSLSemanticSequencer extends AbstractDelegatingSemanti
 	
 	
 }
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/serializer/TestgeneratorDSLSyntacticSequencer.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/serializer/TestgeneratorDSLSyntacticSequencer.java
index 9d7c6ece43a43a43759215a3db415ce12349ca78..54690d65a480b5c0492f7f12b65b11fa373a69fd 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/serializer/TestgeneratorDSLSyntacticSequencer.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/serializer/TestgeneratorDSLSyntacticSequencer.java
@@ -1,3 +1,223 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.serializer;
+
+import com.google.inject.Inject;
+import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+
+@SuppressWarnings("all")
+public class TestgeneratorDSLSyntacticSequencer extends AbstractSyntacticSequencer {
+
+	protected TestgeneratorDSLGrammarAccess grammarAccess;
+	protected AbstractElementAlias match_BPMNDiagram___WithKeyword_11_0_DmnKeyword_11_1_ASSOCIATIONTerminalRuleCall_11_2_LIST_OPENTerminalRuleCall_11_3_LIST_CLOSEDTerminalRuleCall_11_5__q;
+	protected AbstractElementAlias match_BPMNDiagram___WithKeyword_12_0_EmbeddedKeyword_12_1_ASSOCIATIONTerminalRuleCall_12_2_LIST_OPENTerminalRuleCall_12_3_LIST_CLOSEDTerminalRuleCall_12_5__q;
+	protected AbstractElementAlias match_ExternalServiceTaskFlowElement___WithKeyword_8_0_HardcodedKeyword_8_1_InputsKeyword_8_2_ASSOCIATIONTerminalRuleCall_8_3_LIST_OPENTerminalRuleCall_8_4_LIST_CLOSEDTerminalRuleCall_8_6__q;
+	protected AbstractElementAlias match_Flow___WithoutKeyword_10_0_ElementsKeyword_10_1_ASSOCIATIONTerminalRuleCall_10_2_LIST_OPENTerminalRuleCall_10_3_LIST_CLOSEDTerminalRuleCall_10_5__q;
+	protected AbstractElementAlias match_StartFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q;
+	protected AbstractElementAlias match_Test___WithKeyword_7_0_MocksKeyword_7_1_ASSOCIATIONTerminalRuleCall_7_2_LIST_OPENTerminalRuleCall_7_3_LIST_CLOSEDTerminalRuleCall_7_5__q;
+	protected AbstractElementAlias match_UserTaskFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q;
+	
+	@Inject
+	protected void init(IGrammarAccess access) {
+		grammarAccess = (TestgeneratorDSLGrammarAccess) access;
+		match_BPMNDiagram___WithKeyword_11_0_DmnKeyword_11_1_ASSOCIATIONTerminalRuleCall_11_2_LIST_OPENTerminalRuleCall_11_3_LIST_CLOSEDTerminalRuleCall_11_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getWithKeyword_11_0()), new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getDmnKeyword_11_1()), new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_11_2()), new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_11_3()), new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_11_5()));
+		match_BPMNDiagram___WithKeyword_12_0_EmbeddedKeyword_12_1_ASSOCIATIONTerminalRuleCall_12_2_LIST_OPENTerminalRuleCall_12_3_LIST_CLOSEDTerminalRuleCall_12_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getWithKeyword_12_0()), new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getEmbeddedKeyword_12_1()), new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getASSOCIATIONTerminalRuleCall_12_2()), new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getLIST_OPENTerminalRuleCall_12_3()), new TokenAlias(false, false, grammarAccess.getBPMNDiagramAccess().getLIST_CLOSEDTerminalRuleCall_12_5()));
+		match_ExternalServiceTaskFlowElement___WithKeyword_8_0_HardcodedKeyword_8_1_InputsKeyword_8_2_ASSOCIATIONTerminalRuleCall_8_3_LIST_OPENTerminalRuleCall_8_4_LIST_CLOSEDTerminalRuleCall_8_6__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getExternalServiceTaskFlowElementAccess().getWithKeyword_8_0()), new TokenAlias(false, false, grammarAccess.getExternalServiceTaskFlowElementAccess().getHardcodedKeyword_8_1()), new TokenAlias(false, false, grammarAccess.getExternalServiceTaskFlowElementAccess().getInputsKeyword_8_2()), new TokenAlias(false, false, grammarAccess.getExternalServiceTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_8_3()), new TokenAlias(false, false, grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_8_4()), new TokenAlias(false, false, grammarAccess.getExternalServiceTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_8_6()));
+		match_Flow___WithoutKeyword_10_0_ElementsKeyword_10_1_ASSOCIATIONTerminalRuleCall_10_2_LIST_OPENTerminalRuleCall_10_3_LIST_CLOSEDTerminalRuleCall_10_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getFlowAccess().getWithoutKeyword_10_0()), new TokenAlias(false, false, grammarAccess.getFlowAccess().getElementsKeyword_10_1()), new TokenAlias(false, false, grammarAccess.getFlowAccess().getASSOCIATIONTerminalRuleCall_10_2()), new TokenAlias(false, false, grammarAccess.getFlowAccess().getLIST_OPENTerminalRuleCall_10_3()), new TokenAlias(false, false, grammarAccess.getFlowAccess().getLIST_CLOSEDTerminalRuleCall_10_5()));
+		match_StartFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getStartFlowElementAccess().getWithKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getStartFlowElementAccess().getInputVariablesKeyword_4_1()), new TokenAlias(false, false, grammarAccess.getStartFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()), new TokenAlias(false, false, grammarAccess.getStartFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()), new TokenAlias(false, false, grammarAccess.getStartFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()));
+		match_Test___WithKeyword_7_0_MocksKeyword_7_1_ASSOCIATIONTerminalRuleCall_7_2_LIST_OPENTerminalRuleCall_7_3_LIST_CLOSEDTerminalRuleCall_7_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getTestAccess().getWithKeyword_7_0()), new TokenAlias(false, false, grammarAccess.getTestAccess().getMocksKeyword_7_1()), new TokenAlias(false, false, grammarAccess.getTestAccess().getASSOCIATIONTerminalRuleCall_7_2()), new TokenAlias(false, false, grammarAccess.getTestAccess().getLIST_OPENTerminalRuleCall_7_3()), new TokenAlias(false, false, grammarAccess.getTestAccess().getLIST_CLOSEDTerminalRuleCall_7_5()));
+		match_UserTaskFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getUserTaskFlowElementAccess().getWithKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getUserTaskFlowElementAccess().getInputVariablesKeyword_4_1()), new TokenAlias(false, false, grammarAccess.getUserTaskFlowElementAccess().getASSOCIATIONTerminalRuleCall_4_2()), new TokenAlias(false, false, grammarAccess.getUserTaskFlowElementAccess().getLIST_OPENTerminalRuleCall_4_3()), new TokenAlias(false, false, grammarAccess.getUserTaskFlowElementAccess().getLIST_CLOSEDTerminalRuleCall_4_5()));
+	}
+	
+	@Override
+	protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (ruleCall.getRule() == grammarAccess.getASSOCIATIONRule())
+			return getASSOCIATIONToken(semanticObject, ruleCall, node);
+		else if (ruleCall.getRule() == grammarAccess.getDECLARATION_FINISHEDRule())
+			return getDECLARATION_FINISHEDToken(semanticObject, ruleCall, node);
+		else if (ruleCall.getRule() == grammarAccess.getLIST_CLOSEDRule())
+			return getLIST_CLOSEDToken(semanticObject, ruleCall, node);
+		else if (ruleCall.getRule() == grammarAccess.getLIST_OPENRule())
+			return getLIST_OPENToken(semanticObject, ruleCall, node);
+		else if (ruleCall.getRule() == grammarAccess.getSEPARATORRule())
+			return getSEPARATORToken(semanticObject, ruleCall, node);
+		return "";
+	}
+	
+	/**
+	 * terminal ASSOCIATION : ':';
+	 */
+	protected String getASSOCIATIONToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return ":";
+	}
+	
+	/**
+	 * terminal DECLARATION_FINISHED : ';';
+	 */
+	protected String getDECLARATION_FINISHEDToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return ";";
+	}
+	
+	/**
+	 * terminal LIST_CLOSED : ']';
+	 */
+	protected String getLIST_CLOSEDToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return "]";
+	}
+	
+	/**
+	 * terminal LIST_OPEN : '[';
+	 */
+	protected String getLIST_OPENToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return "[";
+	}
+	
+	/**
+	 * terminal SEPARATOR : ',';
+	 */
+	protected String getSEPARATORToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return ",";
+	}
+	
+	@Override
+	protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+		if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+		List<INode> transitionNodes = collectNodes(fromNode, toNode);
+		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+			List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+			if (match_BPMNDiagram___WithKeyword_11_0_DmnKeyword_11_1_ASSOCIATIONTerminalRuleCall_11_2_LIST_OPENTerminalRuleCall_11_3_LIST_CLOSEDTerminalRuleCall_11_5__q.equals(syntax))
+				emit_BPMNDiagram___WithKeyword_11_0_DmnKeyword_11_1_ASSOCIATIONTerminalRuleCall_11_2_LIST_OPENTerminalRuleCall_11_3_LIST_CLOSEDTerminalRuleCall_11_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_BPMNDiagram___WithKeyword_12_0_EmbeddedKeyword_12_1_ASSOCIATIONTerminalRuleCall_12_2_LIST_OPENTerminalRuleCall_12_3_LIST_CLOSEDTerminalRuleCall_12_5__q.equals(syntax))
+				emit_BPMNDiagram___WithKeyword_12_0_EmbeddedKeyword_12_1_ASSOCIATIONTerminalRuleCall_12_2_LIST_OPENTerminalRuleCall_12_3_LIST_CLOSEDTerminalRuleCall_12_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_ExternalServiceTaskFlowElement___WithKeyword_8_0_HardcodedKeyword_8_1_InputsKeyword_8_2_ASSOCIATIONTerminalRuleCall_8_3_LIST_OPENTerminalRuleCall_8_4_LIST_CLOSEDTerminalRuleCall_8_6__q.equals(syntax))
+				emit_ExternalServiceTaskFlowElement___WithKeyword_8_0_HardcodedKeyword_8_1_InputsKeyword_8_2_ASSOCIATIONTerminalRuleCall_8_3_LIST_OPENTerminalRuleCall_8_4_LIST_CLOSEDTerminalRuleCall_8_6__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_Flow___WithoutKeyword_10_0_ElementsKeyword_10_1_ASSOCIATIONTerminalRuleCall_10_2_LIST_OPENTerminalRuleCall_10_3_LIST_CLOSEDTerminalRuleCall_10_5__q.equals(syntax))
+				emit_Flow___WithoutKeyword_10_0_ElementsKeyword_10_1_ASSOCIATIONTerminalRuleCall_10_2_LIST_OPENTerminalRuleCall_10_3_LIST_CLOSEDTerminalRuleCall_10_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_StartFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q.equals(syntax))
+				emit_StartFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_Test___WithKeyword_7_0_MocksKeyword_7_1_ASSOCIATIONTerminalRuleCall_7_2_LIST_OPENTerminalRuleCall_7_3_LIST_CLOSEDTerminalRuleCall_7_5__q.equals(syntax))
+				emit_Test___WithKeyword_7_0_MocksKeyword_7_1_ASSOCIATIONTerminalRuleCall_7_2_LIST_OPENTerminalRuleCall_7_3_LIST_CLOSEDTerminalRuleCall_7_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if (match_UserTaskFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q.equals(syntax))
+				emit_UserTaskFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else acceptNodes(getLastNavigableState(), syntaxNodes);
+		}
+	}
+
+	/**
+	 * Ambiguous syntax:
+	 *     ('with' 'dmn' ASSOCIATION LIST_OPEN LIST_CLOSED)?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     key=STRING (ambiguity) 'with' 'embedded' ASSOCIATION LIST_OPEN embedded+=STRING
+	 *     key=STRING (ambiguity) ('with' 'embedded' ASSOCIATION LIST_OPEN LIST_CLOSED)? DECLARATION_FINISHED (rule end)
+	 */
+	protected void emit_BPMNDiagram___WithKeyword_11_0_DmnKeyword_11_1_ASSOCIATIONTerminalRuleCall_11_2_LIST_OPENTerminalRuleCall_11_3_LIST_CLOSEDTerminalRuleCall_11_5__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
+	 *     ('with' 'embedded' ASSOCIATION LIST_OPEN LIST_CLOSED)?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     dmn+=STRING LIST_CLOSED (ambiguity) DECLARATION_FINISHED (rule end)
+	 *     key=STRING ('with' 'dmn' ASSOCIATION LIST_OPEN LIST_CLOSED)? (ambiguity) DECLARATION_FINISHED (rule end)
+	 */
+	protected void emit_BPMNDiagram___WithKeyword_12_0_EmbeddedKeyword_12_1_ASSOCIATIONTerminalRuleCall_12_2_LIST_OPENTerminalRuleCall_12_3_LIST_CLOSEDTerminalRuleCall_12_5__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
+	 *     (
+	  *         'with' 
+	  *         'hardcoded' 
+	  *         'inputs' 
+	  *         ASSOCIATION 
+	  *         LIST_OPEN 
+	  *         LIST_CLOSED
+	  *     )?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     externalTopic=ExternalTopicReference (ambiguity) DECLARATION_FINISHED (rule end)
+	 */
+	protected void emit_ExternalServiceTaskFlowElement___WithKeyword_8_0_HardcodedKeyword_8_1_InputsKeyword_8_2_ASSOCIATIONTerminalRuleCall_8_3_LIST_OPENTerminalRuleCall_8_4_LIST_CLOSEDTerminalRuleCall_8_6__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
+	 *     ('without' 'elements' ASSOCIATION LIST_OPEN LIST_CLOSED)?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     bpmnReference=BPMNReference 'with' 'elements' ASSOCIATION LIST_OPEN LIST_CLOSED (ambiguity) DECLARATION_FINISHED (rule end)
+	 *     inclElements+=FlowElementReference LIST_CLOSED (ambiguity) DECLARATION_FINISHED (rule end)
+	 */
+	protected void emit_Flow___WithoutKeyword_10_0_ElementsKeyword_10_1_ASSOCIATIONTerminalRuleCall_10_2_LIST_OPENTerminalRuleCall_10_3_LIST_CLOSEDTerminalRuleCall_10_5__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
+	 *     ('with' 'inputVariables' ASSOCIATION LIST_OPEN LIST_CLOSED)?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     name=ID ASSOCIATION 'StartEvent' (ambiguity) DECLARATION_FINISHED (rule end)
+	 */
+	protected void emit_StartFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
+	 *     ('with' 'mocks' ASSOCIATION LIST_OPEN LIST_CLOSED)?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     declarations+=VariableDeclarations (ambiguity) DECLARATION_FINISHED (rule end)
+	 *     endCheck=EndChecks (ambiguity) DECLARATION_FINISHED (rule end)
+	 *     flowReference=FlowReference (ambiguity) DECLARATION_FINISHED (rule end)
+	 *     priority=INT (ambiguity) DECLARATION_FINISHED (rule end)
+	 */
+	protected void emit_Test___WithKeyword_7_0_MocksKeyword_7_1_ASSOCIATIONTerminalRuleCall_7_2_LIST_OPENTerminalRuleCall_7_3_LIST_CLOSEDTerminalRuleCall_7_5__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Ambiguous syntax:
+	 *     ('with' 'inputVariables' ASSOCIATION LIST_OPEN LIST_CLOSED)?
+	 *
+	 * This ambiguous syntax occurs at:
+	 *     name=ID ASSOCIATION 'UserTask' (ambiguity) DECLARATION_FINISHED (rule end)
+	 */
+	protected void emit_UserTaskFlowElement___WithKeyword_4_0_InputVariablesKeyword_4_1_ASSOCIATIONTerminalRuleCall_4_2_LIST_OPENTerminalRuleCall_4_3_LIST_CLOSEDTerminalRuleCall_4_5__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+}
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -215,3 +435,4 @@ public class TestgeneratorDSLSyntacticSequencer extends AbstractSyntacticSequenc
 	}
 	
 }
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/services/TestgeneratorDSLGrammarAccess.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/services/TestgeneratorDSLGrammarAccess.java
index 997f20479a168b8e9814bd556bd3a3f0101a1975..b026189e6f87b2ee49da136f719fe72696313fe8 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/services/TestgeneratorDSLGrammarAccess.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/services/TestgeneratorDSLGrammarAccess.java
@@ -1,3 +1,3839 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.services;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.List;
+import org.eclipse.xtext.Alternatives;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.CrossReference;
+import org.eclipse.xtext.EnumLiteralDeclaration;
+import org.eclipse.xtext.EnumRule;
+import org.eclipse.xtext.Grammar;
+import org.eclipse.xtext.GrammarUtil;
+import org.eclipse.xtext.Group;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.ParserRule;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.TerminalRule;
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+import org.eclipse.xtext.service.AbstractElementFinder;
+import org.eclipse.xtext.service.GrammarProvider;
+
+@Singleton
+public class TestgeneratorDSLGrammarAccess extends AbstractElementFinder.AbstractGrammarElementFinder {
+	
+	public class ModelElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Model");
+		private final Assignment cDeclarationsAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cDeclarationsDeclarationParserRuleCall_0 = (RuleCall)cDeclarationsAssignment.eContents().get(0);
+		
+		//Model:
+		//    declarations+=Declaration*;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//declarations+=Declaration*
+		public Assignment getDeclarationsAssignment() { return cDeclarationsAssignment; }
+		
+		//Declaration
+		public RuleCall getDeclarationsDeclarationParserRuleCall_0() { return cDeclarationsDeclarationParserRuleCall_0; }
+	}
+	public class DeclarationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Declaration");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cBPMNDiagramParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cFlowElementParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cVariableParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cFlowParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cTestParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		private final RuleCall cMockParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+		private final RuleCall cExternalTopicParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+		private final RuleCall cLoopParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+		
+		//Declaration:
+		//    BPMNDiagram | FlowElement | Variable | Flow | Test | Mock | ExternalTopic | Loop;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//BPMNDiagram | FlowElement | Variable | Flow | Test | Mock | ExternalTopic | Loop
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//BPMNDiagram
+		public RuleCall getBPMNDiagramParserRuleCall_0() { return cBPMNDiagramParserRuleCall_0; }
+		
+		//FlowElement
+		public RuleCall getFlowElementParserRuleCall_1() { return cFlowElementParserRuleCall_1; }
+		
+		//Variable
+		public RuleCall getVariableParserRuleCall_2() { return cVariableParserRuleCall_2; }
+		
+		//Flow
+		public RuleCall getFlowParserRuleCall_3() { return cFlowParserRuleCall_3; }
+		
+		//Test
+		public RuleCall getTestParserRuleCall_4() { return cTestParserRuleCall_4; }
+		
+		//Mock
+		public RuleCall getMockParserRuleCall_5() { return cMockParserRuleCall_5; }
+		
+		//ExternalTopic
+		public RuleCall getExternalTopicParserRuleCall_6() { return cExternalTopicParserRuleCall_6; }
+		
+		//Loop
+		public RuleCall getLoopParserRuleCall_7() { return cLoopParserRuleCall_7; }
+	}
+	public class BPMNDiagramElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BPMNDiagram");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cBPMNDiagramKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cWithKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cTestpackageKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cTestpackageAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cTestpackageSTRINGTerminalRuleCall_4_0 = (RuleCall)cTestpackageAssignment_4.eContents().get(0);
+		private final Keyword cWithKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Keyword cBpmnKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cBpmnAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cBpmnSTRINGTerminalRuleCall_7_0 = (RuleCall)cBpmnAssignment_7.eContents().get(0);
+		private final Keyword cWithKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Keyword cKeyKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Assignment cKeyAssignment_10 = (Assignment)cGroup.eContents().get(10);
+		private final RuleCall cKeySTRINGTerminalRuleCall_10_0 = (RuleCall)cKeyAssignment_10.eContents().get(0);
+		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
+		private final Keyword cWithKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
+		private final Keyword cDmnKeyword_11_1 = (Keyword)cGroup_11.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_11_2 = (RuleCall)cGroup_11.eContents().get(2);
+		private final RuleCall cLIST_OPENTerminalRuleCall_11_3 = (RuleCall)cGroup_11.eContents().get(3);
+		private final Group cGroup_11_4 = (Group)cGroup_11.eContents().get(4);
+		private final Assignment cDmnAssignment_11_4_0 = (Assignment)cGroup_11_4.eContents().get(0);
+		private final RuleCall cDmnSTRINGTerminalRuleCall_11_4_0_0 = (RuleCall)cDmnAssignment_11_4_0.eContents().get(0);
+		private final Group cGroup_11_4_1 = (Group)cGroup_11_4.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_11_4_1_0 = (RuleCall)cGroup_11_4_1.eContents().get(0);
+		private final Assignment cDmnAssignment_11_4_1_1 = (Assignment)cGroup_11_4_1.eContents().get(1);
+		private final RuleCall cDmnSTRINGTerminalRuleCall_11_4_1_1_0 = (RuleCall)cDmnAssignment_11_4_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_11_5 = (RuleCall)cGroup_11.eContents().get(5);
+		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
+		private final Keyword cWithKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
+		private final Keyword cEmbeddedKeyword_12_1 = (Keyword)cGroup_12.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_12_2 = (RuleCall)cGroup_12.eContents().get(2);
+		private final RuleCall cLIST_OPENTerminalRuleCall_12_3 = (RuleCall)cGroup_12.eContents().get(3);
+		private final Group cGroup_12_4 = (Group)cGroup_12.eContents().get(4);
+		private final Assignment cEmbeddedAssignment_12_4_0 = (Assignment)cGroup_12_4.eContents().get(0);
+		private final RuleCall cEmbeddedSTRINGTerminalRuleCall_12_4_0_0 = (RuleCall)cEmbeddedAssignment_12_4_0.eContents().get(0);
+		private final Group cGroup_12_4_1 = (Group)cGroup_12_4.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_12_4_1_0 = (RuleCall)cGroup_12_4_1.eContents().get(0);
+		private final Assignment cEmbeddedAssignment_12_4_1_1 = (Assignment)cGroup_12_4_1.eContents().get(1);
+		private final RuleCall cEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0 = (RuleCall)cEmbeddedAssignment_12_4_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_12_5 = (RuleCall)cGroup_12.eContents().get(5);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_13 = (RuleCall)cGroup.eContents().get(13);
+		
+		//BPMNDiagram:
+		//    "BPMNDiagram" name=ID
+		//        'with' 'testpackage' testpackage=STRING
+		//        'with' 'bpmn' bpmn=STRING
+		//        'with' 'key' key=STRING
+		//        ('with' 'dmn' ASSOCIATION LIST_OPEN (dmn+=STRING (SEPARATOR dmn+=STRING)*)? LIST_CLOSED)?
+		//        ('with' 'embedded' ASSOCIATION LIST_OPEN (embedded+=STRING (SEPARATOR embedded+=STRING)*)? LIST_CLOSED)?
+		//        DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"BPMNDiagram" name=ID
+		//    'with' 'testpackage' testpackage=STRING
+		//    'with' 'bpmn' bpmn=STRING
+		//    'with' 'key' key=STRING
+		//    ('with' 'dmn' ASSOCIATION LIST_OPEN (dmn+=STRING (SEPARATOR dmn+=STRING)*)? LIST_CLOSED)?
+		//    ('with' 'embedded' ASSOCIATION LIST_OPEN (embedded+=STRING (SEPARATOR embedded+=STRING)*)? LIST_CLOSED)?
+		//    DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"BPMNDiagram"
+		public Keyword getBPMNDiagramKeyword_0() { return cBPMNDiagramKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//'with'
+		public Keyword getWithKeyword_2() { return cWithKeyword_2; }
+		
+		//'testpackage'
+		public Keyword getTestpackageKeyword_3() { return cTestpackageKeyword_3; }
+		
+		//testpackage=STRING
+		public Assignment getTestpackageAssignment_4() { return cTestpackageAssignment_4; }
+		
+		//STRING
+		public RuleCall getTestpackageSTRINGTerminalRuleCall_4_0() { return cTestpackageSTRINGTerminalRuleCall_4_0; }
+		
+		//'with'
+		public Keyword getWithKeyword_5() { return cWithKeyword_5; }
+		
+		//'bpmn'
+		public Keyword getBpmnKeyword_6() { return cBpmnKeyword_6; }
+		
+		//bpmn=STRING
+		public Assignment getBpmnAssignment_7() { return cBpmnAssignment_7; }
+		
+		//STRING
+		public RuleCall getBpmnSTRINGTerminalRuleCall_7_0() { return cBpmnSTRINGTerminalRuleCall_7_0; }
+		
+		//'with'
+		public Keyword getWithKeyword_8() { return cWithKeyword_8; }
+		
+		//'key'
+		public Keyword getKeyKeyword_9() { return cKeyKeyword_9; }
+		
+		//key=STRING
+		public Assignment getKeyAssignment_10() { return cKeyAssignment_10; }
+		
+		//STRING
+		public RuleCall getKeySTRINGTerminalRuleCall_10_0() { return cKeySTRINGTerminalRuleCall_10_0; }
+		
+		//('with' 'dmn' ASSOCIATION LIST_OPEN (dmn+=STRING (SEPARATOR dmn+=STRING)*)? LIST_CLOSED)?
+		public Group getGroup_11() { return cGroup_11; }
+		
+		//'with'
+		public Keyword getWithKeyword_11_0() { return cWithKeyword_11_0; }
+		
+		//'dmn'
+		public Keyword getDmnKeyword_11_1() { return cDmnKeyword_11_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_11_2() { return cASSOCIATIONTerminalRuleCall_11_2; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_11_3() { return cLIST_OPENTerminalRuleCall_11_3; }
+		
+		//(dmn+=STRING (SEPARATOR dmn+=STRING)*)?
+		public Group getGroup_11_4() { return cGroup_11_4; }
+		
+		//dmn+=STRING
+		public Assignment getDmnAssignment_11_4_0() { return cDmnAssignment_11_4_0; }
+		
+		//STRING
+		public RuleCall getDmnSTRINGTerminalRuleCall_11_4_0_0() { return cDmnSTRINGTerminalRuleCall_11_4_0_0; }
+		
+		//(SEPARATOR dmn+=STRING)*
+		public Group getGroup_11_4_1() { return cGroup_11_4_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_11_4_1_0() { return cSEPARATORTerminalRuleCall_11_4_1_0; }
+		
+		//dmn+=STRING
+		public Assignment getDmnAssignment_11_4_1_1() { return cDmnAssignment_11_4_1_1; }
+		
+		//STRING
+		public RuleCall getDmnSTRINGTerminalRuleCall_11_4_1_1_0() { return cDmnSTRINGTerminalRuleCall_11_4_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_11_5() { return cLIST_CLOSEDTerminalRuleCall_11_5; }
+		
+		//('with' 'embedded' ASSOCIATION LIST_OPEN (embedded+=STRING (SEPARATOR embedded+=STRING)*)? LIST_CLOSED)?
+		public Group getGroup_12() { return cGroup_12; }
+		
+		//'with'
+		public Keyword getWithKeyword_12_0() { return cWithKeyword_12_0; }
+		
+		//'embedded'
+		public Keyword getEmbeddedKeyword_12_1() { return cEmbeddedKeyword_12_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_12_2() { return cASSOCIATIONTerminalRuleCall_12_2; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_12_3() { return cLIST_OPENTerminalRuleCall_12_3; }
+		
+		//(embedded+=STRING (SEPARATOR embedded+=STRING)*)?
+		public Group getGroup_12_4() { return cGroup_12_4; }
+		
+		//embedded+=STRING
+		public Assignment getEmbeddedAssignment_12_4_0() { return cEmbeddedAssignment_12_4_0; }
+		
+		//STRING
+		public RuleCall getEmbeddedSTRINGTerminalRuleCall_12_4_0_0() { return cEmbeddedSTRINGTerminalRuleCall_12_4_0_0; }
+		
+		//(SEPARATOR embedded+=STRING)*
+		public Group getGroup_12_4_1() { return cGroup_12_4_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_12_4_1_0() { return cSEPARATORTerminalRuleCall_12_4_1_0; }
+		
+		//embedded+=STRING
+		public Assignment getEmbeddedAssignment_12_4_1_1() { return cEmbeddedAssignment_12_4_1_1; }
+		
+		//STRING
+		public RuleCall getEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0() { return cEmbeddedSTRINGTerminalRuleCall_12_4_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_12_5() { return cLIST_CLOSEDTerminalRuleCall_12_5; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_13() { return cDECLARATION_FINISHEDTerminalRuleCall_13; }
+	}
+	public class BPMNReferenceElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BPMNReference");
+		private final Assignment cRefAssignment = (Assignment)rule.eContents().get(1);
+		private final CrossReference cRefBPMNDiagramCrossReference_0 = (CrossReference)cRefAssignment.eContents().get(0);
+		private final RuleCall cRefBPMNDiagramIDTerminalRuleCall_0_1 = (RuleCall)cRefBPMNDiagramCrossReference_0.eContents().get(1);
+		
+		//BPMNReference:
+		//    ref=[BPMNDiagram];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//ref=[BPMNDiagram]
+		public Assignment getRefAssignment() { return cRefAssignment; }
+		
+		//[BPMNDiagram]
+		public CrossReference getRefBPMNDiagramCrossReference_0() { return cRefBPMNDiagramCrossReference_0; }
+		
+		//ID
+		public RuleCall getRefBPMNDiagramIDTerminalRuleCall_0_1() { return cRefBPMNDiagramIDTerminalRuleCall_0_1; }
+	}
+	public class FlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElement");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cStartFlowElementParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cEndFlowElementParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cUserTaskFlowElementParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cManualTaskFlowElementParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cScriptTaskFlowElementParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		private final RuleCall cServiceTaskFlowElementParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+		private final RuleCall cBusinessRuleTaskFlowElementParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+		private final RuleCall cGatewayFlowElementParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+		private final RuleCall cSequenceFlowElementParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+		
+		//FlowElement:
+		//    StartFlowElement | EndFlowElement | UserTaskFlowElement | ManualTaskFlowElement | ScriptTaskFlowElement | ServiceTaskFlowElement | BusinessRuleTaskFlowElement | GatewayFlowElement | SequenceFlowElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//StartFlowElement | EndFlowElement | UserTaskFlowElement | ManualTaskFlowElement | ScriptTaskFlowElement | ServiceTaskFlowElement | BusinessRuleTaskFlowElement | GatewayFlowElement | SequenceFlowElement
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//StartFlowElement
+		public RuleCall getStartFlowElementParserRuleCall_0() { return cStartFlowElementParserRuleCall_0; }
+		
+		//EndFlowElement
+		public RuleCall getEndFlowElementParserRuleCall_1() { return cEndFlowElementParserRuleCall_1; }
+		
+		//UserTaskFlowElement
+		public RuleCall getUserTaskFlowElementParserRuleCall_2() { return cUserTaskFlowElementParserRuleCall_2; }
+		
+		//ManualTaskFlowElement
+		public RuleCall getManualTaskFlowElementParserRuleCall_3() { return cManualTaskFlowElementParserRuleCall_3; }
+		
+		//ScriptTaskFlowElement
+		public RuleCall getScriptTaskFlowElementParserRuleCall_4() { return cScriptTaskFlowElementParserRuleCall_4; }
+		
+		//ServiceTaskFlowElement
+		public RuleCall getServiceTaskFlowElementParserRuleCall_5() { return cServiceTaskFlowElementParserRuleCall_5; }
+		
+		//BusinessRuleTaskFlowElement
+		public RuleCall getBusinessRuleTaskFlowElementParserRuleCall_6() { return cBusinessRuleTaskFlowElementParserRuleCall_6; }
+		
+		//GatewayFlowElement
+		public RuleCall getGatewayFlowElementParserRuleCall_7() { return cGatewayFlowElementParserRuleCall_7; }
+		
+		//SequenceFlowElement
+		public RuleCall getSequenceFlowElementParserRuleCall_8() { return cSequenceFlowElementParserRuleCall_8; }
+	}
+	public class StartFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.StartFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cStartEventKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cWithKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Keyword cInputVariablesKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_4_2 = (RuleCall)cGroup_4.eContents().get(2);
+		private final RuleCall cLIST_OPENTerminalRuleCall_4_3 = (RuleCall)cGroup_4.eContents().get(3);
+		private final Group cGroup_4_4 = (Group)cGroup_4.eContents().get(4);
+		private final Assignment cInputVariablesAssignment_4_4_0 = (Assignment)cGroup_4_4.eContents().get(0);
+		private final RuleCall cInputVariablesVariableReferenceParserRuleCall_4_4_0_0 = (RuleCall)cInputVariablesAssignment_4_4_0.eContents().get(0);
+		private final Group cGroup_4_4_1 = (Group)cGroup_4_4.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_4_4_1_0 = (RuleCall)cGroup_4_4_1.eContents().get(0);
+		private final Assignment cInputVariablesAssignment_4_4_1_1 = (Assignment)cGroup_4_4_1.eContents().get(1);
+		private final RuleCall cInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0 = (RuleCall)cInputVariablesAssignment_4_4_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_4_5 = (RuleCall)cGroup_4.eContents().get(5);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+		
+		//StartFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "StartEvent"
+		//    ('with' 'inputVariables' ASSOCIATION LIST_OPEN (inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)? LIST_CLOSED)?
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "StartEvent"
+		//('with' 'inputVariables' ASSOCIATION LIST_OPEN (inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)? LIST_CLOSED)?
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"StartEvent"
+		public Keyword getStartEventKeyword_3() { return cStartEventKeyword_3; }
+		
+		//('with' 'inputVariables' ASSOCIATION LIST_OPEN (inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)? LIST_CLOSED)?
+		public Group getGroup_4() { return cGroup_4; }
+		
+		//'with'
+		public Keyword getWithKeyword_4_0() { return cWithKeyword_4_0; }
+		
+		//'inputVariables'
+		public Keyword getInputVariablesKeyword_4_1() { return cInputVariablesKeyword_4_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_4_2() { return cASSOCIATIONTerminalRuleCall_4_2; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_4_3() { return cLIST_OPENTerminalRuleCall_4_3; }
+		
+		//(inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)?
+		public Group getGroup_4_4() { return cGroup_4_4; }
+		
+		//inputVariables+=VariableReference
+		public Assignment getInputVariablesAssignment_4_4_0() { return cInputVariablesAssignment_4_4_0; }
+		
+		//VariableReference
+		public RuleCall getInputVariablesVariableReferenceParserRuleCall_4_4_0_0() { return cInputVariablesVariableReferenceParserRuleCall_4_4_0_0; }
+		
+		//(SEPARATOR inputVariables+=VariableReference)*
+		public Group getGroup_4_4_1() { return cGroup_4_4_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_4_4_1_0() { return cSEPARATORTerminalRuleCall_4_4_1_0; }
+		
+		//inputVariables+=VariableReference
+		public Assignment getInputVariablesAssignment_4_4_1_1() { return cInputVariablesAssignment_4_4_1_1; }
+		
+		//VariableReference
+		public RuleCall getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0() { return cInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_4_5() { return cLIST_CLOSEDTerminalRuleCall_4_5; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_5() { return cDECLARATION_FINISHEDTerminalRuleCall_5; }
+	}
+	public class EndFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.EndFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cEndEventKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		
+		//EndFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "EndEvent" DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "EndEvent" DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"EndEvent"
+		public Keyword getEndEventKeyword_3() { return cEndEventKeyword_3; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_4() { return cDECLARATION_FINISHEDTerminalRuleCall_4; }
+	}
+	public class UserTaskFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.UserTaskFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cUserTaskKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cWithKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Keyword cInputVariablesKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_4_2 = (RuleCall)cGroup_4.eContents().get(2);
+		private final RuleCall cLIST_OPENTerminalRuleCall_4_3 = (RuleCall)cGroup_4.eContents().get(3);
+		private final Group cGroup_4_4 = (Group)cGroup_4.eContents().get(4);
+		private final Assignment cInputVariablesAssignment_4_4_0 = (Assignment)cGroup_4_4.eContents().get(0);
+		private final RuleCall cInputVariablesVariableReferenceParserRuleCall_4_4_0_0 = (RuleCall)cInputVariablesAssignment_4_4_0.eContents().get(0);
+		private final Group cGroup_4_4_1 = (Group)cGroup_4_4.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_4_4_1_0 = (RuleCall)cGroup_4_4_1.eContents().get(0);
+		private final Assignment cInputVariablesAssignment_4_4_1_1 = (Assignment)cGroup_4_4_1.eContents().get(1);
+		private final RuleCall cInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0 = (RuleCall)cInputVariablesAssignment_4_4_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_4_5 = (RuleCall)cGroup_4.eContents().get(5);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+		
+		//UserTaskFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "UserTask"
+		//    ('with' 'inputVariables' ASSOCIATION LIST_OPEN (inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)? LIST_CLOSED)?
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "UserTask"
+		//('with' 'inputVariables' ASSOCIATION LIST_OPEN (inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)? LIST_CLOSED)?
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"UserTask"
+		public Keyword getUserTaskKeyword_3() { return cUserTaskKeyword_3; }
+		
+		//('with' 'inputVariables' ASSOCIATION LIST_OPEN (inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)? LIST_CLOSED)?
+		public Group getGroup_4() { return cGroup_4; }
+		
+		//'with'
+		public Keyword getWithKeyword_4_0() { return cWithKeyword_4_0; }
+		
+		//'inputVariables'
+		public Keyword getInputVariablesKeyword_4_1() { return cInputVariablesKeyword_4_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_4_2() { return cASSOCIATIONTerminalRuleCall_4_2; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_4_3() { return cLIST_OPENTerminalRuleCall_4_3; }
+		
+		//(inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)?
+		public Group getGroup_4_4() { return cGroup_4_4; }
+		
+		//inputVariables+=VariableReference
+		public Assignment getInputVariablesAssignment_4_4_0() { return cInputVariablesAssignment_4_4_0; }
+		
+		//VariableReference
+		public RuleCall getInputVariablesVariableReferenceParserRuleCall_4_4_0_0() { return cInputVariablesVariableReferenceParserRuleCall_4_4_0_0; }
+		
+		//(SEPARATOR inputVariables+=VariableReference)*
+		public Group getGroup_4_4_1() { return cGroup_4_4_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_4_4_1_0() { return cSEPARATORTerminalRuleCall_4_4_1_0; }
+		
+		//inputVariables+=VariableReference
+		public Assignment getInputVariablesAssignment_4_4_1_1() { return cInputVariablesAssignment_4_4_1_1; }
+		
+		//VariableReference
+		public RuleCall getInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0() { return cInputVariablesVariableReferenceParserRuleCall_4_4_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_4_5() { return cLIST_CLOSEDTerminalRuleCall_4_5; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_5() { return cDECLARATION_FINISHEDTerminalRuleCall_5; }
+	}
+	public class ManualTaskFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ManualTaskFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cManualTaskKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		
+		//ManualTaskFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "ManualTask" DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "ManualTask" DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"ManualTask"
+		public Keyword getManualTaskKeyword_3() { return cManualTaskKeyword_3; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_4() { return cDECLARATION_FINISHEDTerminalRuleCall_4; }
+	}
+	public class ScriptTaskFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ScriptTaskFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cScriptTaskKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		
+		//ScriptTaskFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "ScriptTask" DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "ScriptTask" DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"ScriptTask"
+		public Keyword getScriptTaskKeyword_3() { return cScriptTaskKeyword_3; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_4() { return cDECLARATION_FINISHEDTerminalRuleCall_4; }
+	}
+	public class ServiceTaskFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ServiceTaskFlowElement");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cDelegateServiceTaskFlowElementParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cExternalServiceTaskFlowElementParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//ServiceTaskFlowElement:
+		//    DelegateServiceTaskFlowElement | ExternalServiceTaskFlowElement;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//DelegateServiceTaskFlowElement | ExternalServiceTaskFlowElement
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//DelegateServiceTaskFlowElement
+		public RuleCall getDelegateServiceTaskFlowElementParserRuleCall_0() { return cDelegateServiceTaskFlowElementParserRuleCall_0; }
+		
+		//ExternalServiceTaskFlowElement
+		public RuleCall getExternalServiceTaskFlowElementParserRuleCall_1() { return cExternalServiceTaskFlowElementParserRuleCall_1; }
+	}
+	public class DelegateServiceTaskFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.DelegateServiceTaskFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cServiceTaskKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cWithKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cDelegateKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_6 = (RuleCall)cGroup.eContents().get(6);
+		private final Assignment cDelegateAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cDelegateSTRINGTerminalRuleCall_7_0 = (RuleCall)cDelegateAssignment_7.eContents().get(0);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_8 = (RuleCall)cGroup.eContents().get(8);
+		
+		//DelegateServiceTaskFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "ServiceTask"
+		//    'with' 'delegate' ASSOCIATION delegate=STRING
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "ServiceTask"
+		//'with' 'delegate' ASSOCIATION delegate=STRING
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"ServiceTask"
+		public Keyword getServiceTaskKeyword_3() { return cServiceTaskKeyword_3; }
+		
+		//'with'
+		public Keyword getWithKeyword_4() { return cWithKeyword_4; }
+		
+		//'delegate'
+		public Keyword getDelegateKeyword_5() { return cDelegateKeyword_5; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_6() { return cASSOCIATIONTerminalRuleCall_6; }
+		
+		//delegate=STRING
+		public Assignment getDelegateAssignment_7() { return cDelegateAssignment_7; }
+		
+		//STRING
+		public RuleCall getDelegateSTRINGTerminalRuleCall_7_0() { return cDelegateSTRINGTerminalRuleCall_7_0; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_8() { return cDECLARATION_FINISHEDTerminalRuleCall_8; }
+	}
+	public class ExternalServiceTaskFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ExternalServiceTaskFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cServiceTaskKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cWithKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cExternalKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_6 = (RuleCall)cGroup.eContents().get(6);
+		private final Assignment cExternalTopicAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cExternalTopicExternalTopicReferenceParserRuleCall_7_0 = (RuleCall)cExternalTopicAssignment_7.eContents().get(0);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Keyword cWithKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
+		private final Keyword cHardcodedKeyword_8_1 = (Keyword)cGroup_8.eContents().get(1);
+		private final Keyword cInputsKeyword_8_2 = (Keyword)cGroup_8.eContents().get(2);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_8_3 = (RuleCall)cGroup_8.eContents().get(3);
+		private final RuleCall cLIST_OPENTerminalRuleCall_8_4 = (RuleCall)cGroup_8.eContents().get(4);
+		private final Group cGroup_8_5 = (Group)cGroup_8.eContents().get(5);
+		private final Assignment cHardcodedInputsAssignment_8_5_0 = (Assignment)cGroup_8_5.eContents().get(0);
+		private final RuleCall cHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0 = (RuleCall)cHardcodedInputsAssignment_8_5_0.eContents().get(0);
+		private final Group cGroup_8_5_1 = (Group)cGroup_8_5.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_8_5_1_0 = (RuleCall)cGroup_8_5_1.eContents().get(0);
+		private final Assignment cHardcodedInputsAssignment_8_5_1_1 = (Assignment)cGroup_8_5_1.eContents().get(1);
+		private final RuleCall cHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0 = (RuleCall)cHardcodedInputsAssignment_8_5_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_8_6 = (RuleCall)cGroup_8.eContents().get(6);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_9 = (RuleCall)cGroup.eContents().get(9);
+		
+		//ExternalServiceTaskFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "ServiceTask"
+		//    'with' 'external' ASSOCIATION externalTopic=ExternalTopicReference
+		//    ('with' 'hardcoded' 'inputs' ASSOCIATION LIST_OPEN (hardcodedInputs+=VariableDeclaration (SEPARATOR hardcodedInputs+=VariableDeclaration)*)? LIST_CLOSED)?
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "ServiceTask"
+		//'with' 'external' ASSOCIATION externalTopic=ExternalTopicReference
+		//('with' 'hardcoded' 'inputs' ASSOCIATION LIST_OPEN (hardcodedInputs+=VariableDeclaration (SEPARATOR hardcodedInputs+=VariableDeclaration)*)? LIST_CLOSED)?
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"ServiceTask"
+		public Keyword getServiceTaskKeyword_3() { return cServiceTaskKeyword_3; }
+		
+		//'with'
+		public Keyword getWithKeyword_4() { return cWithKeyword_4; }
+		
+		//'external'
+		public Keyword getExternalKeyword_5() { return cExternalKeyword_5; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_6() { return cASSOCIATIONTerminalRuleCall_6; }
+		
+		//externalTopic=ExternalTopicReference
+		public Assignment getExternalTopicAssignment_7() { return cExternalTopicAssignment_7; }
+		
+		//ExternalTopicReference
+		public RuleCall getExternalTopicExternalTopicReferenceParserRuleCall_7_0() { return cExternalTopicExternalTopicReferenceParserRuleCall_7_0; }
+		
+		//('with' 'hardcoded' 'inputs' ASSOCIATION LIST_OPEN (hardcodedInputs+=VariableDeclaration (SEPARATOR hardcodedInputs+=VariableDeclaration)*)? LIST_CLOSED)?
+		public Group getGroup_8() { return cGroup_8; }
+		
+		//'with'
+		public Keyword getWithKeyword_8_0() { return cWithKeyword_8_0; }
+		
+		//'hardcoded'
+		public Keyword getHardcodedKeyword_8_1() { return cHardcodedKeyword_8_1; }
+		
+		//'inputs'
+		public Keyword getInputsKeyword_8_2() { return cInputsKeyword_8_2; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_8_3() { return cASSOCIATIONTerminalRuleCall_8_3; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_8_4() { return cLIST_OPENTerminalRuleCall_8_4; }
+		
+		//(hardcodedInputs+=VariableDeclaration (SEPARATOR hardcodedInputs+=VariableDeclaration)*)?
+		public Group getGroup_8_5() { return cGroup_8_5; }
+		
+		//hardcodedInputs+=VariableDeclaration
+		public Assignment getHardcodedInputsAssignment_8_5_0() { return cHardcodedInputsAssignment_8_5_0; }
+		
+		//VariableDeclaration
+		public RuleCall getHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0() { return cHardcodedInputsVariableDeclarationParserRuleCall_8_5_0_0; }
+		
+		//(SEPARATOR hardcodedInputs+=VariableDeclaration)*
+		public Group getGroup_8_5_1() { return cGroup_8_5_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_8_5_1_0() { return cSEPARATORTerminalRuleCall_8_5_1_0; }
+		
+		//hardcodedInputs+=VariableDeclaration
+		public Assignment getHardcodedInputsAssignment_8_5_1_1() { return cHardcodedInputsAssignment_8_5_1_1; }
+		
+		//VariableDeclaration
+		public RuleCall getHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0() { return cHardcodedInputsVariableDeclarationParserRuleCall_8_5_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_8_6() { return cLIST_CLOSEDTerminalRuleCall_8_6; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_9() { return cDECLARATION_FINISHEDTerminalRuleCall_9; }
+	}
+	public class BusinessRuleTaskFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BusinessRuleTaskFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cBusinessRuleTaskKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		
+		//BusinessRuleTaskFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "BusinessRuleTask" DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "BusinessRuleTask" DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"BusinessRuleTask"
+		public Keyword getBusinessRuleTaskKeyword_3() { return cBusinessRuleTaskKeyword_3; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_4() { return cDECLARATION_FINISHEDTerminalRuleCall_4; }
+	}
+	public class GatewayFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.GatewayFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cGatewayKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		
+		//GatewayFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "Gateway" DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "Gateway" DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"Gateway"
+		public Keyword getGatewayKeyword_3() { return cGatewayKeyword_3; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_4() { return cDECLARATION_FINISHEDTerminalRuleCall_4; }
+	}
+	public class SequenceFlowElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.SequenceFlowElement");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowElementKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cSequenceFlowKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cWithKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Keyword cExpressionKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_4_2 = (RuleCall)cGroup_4.eContents().get(2);
+		private final Assignment cExpressionAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3);
+		private final RuleCall cExpressionSTRINGTerminalRuleCall_4_3_0 = (RuleCall)cExpressionAssignment_4_3.eContents().get(0);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+		
+		//SequenceFlowElement:
+		//    "FlowElement" name=ID ASSOCIATION "SequenceFlow"
+		//    ('with' 'expression' ASSOCIATION expression=STRING)?
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"FlowElement" name=ID ASSOCIATION "SequenceFlow"
+		//('with' 'expression' ASSOCIATION expression=STRING)?
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"FlowElement"
+		public Keyword getFlowElementKeyword_0() { return cFlowElementKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//"SequenceFlow"
+		public Keyword getSequenceFlowKeyword_3() { return cSequenceFlowKeyword_3; }
+		
+		//('with' 'expression' ASSOCIATION expression=STRING)?
+		public Group getGroup_4() { return cGroup_4; }
+		
+		//'with'
+		public Keyword getWithKeyword_4_0() { return cWithKeyword_4_0; }
+		
+		//'expression'
+		public Keyword getExpressionKeyword_4_1() { return cExpressionKeyword_4_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_4_2() { return cASSOCIATIONTerminalRuleCall_4_2; }
+		
+		//expression=STRING
+		public Assignment getExpressionAssignment_4_3() { return cExpressionAssignment_4_3; }
+		
+		//STRING
+		public RuleCall getExpressionSTRINGTerminalRuleCall_4_3_0() { return cExpressionSTRINGTerminalRuleCall_4_3_0; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_5() { return cDECLARATION_FINISHEDTerminalRuleCall_5; }
+	}
+	public class FlowElementReferenceElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.FlowElementReference");
+		private final Assignment cRefAssignment = (Assignment)rule.eContents().get(1);
+		private final CrossReference cRefFlowElementCrossReference_0 = (CrossReference)cRefAssignment.eContents().get(0);
+		private final RuleCall cRefFlowElementIDTerminalRuleCall_0_1 = (RuleCall)cRefFlowElementCrossReference_0.eContents().get(1);
+		
+		//FlowElementReference:
+		//    ref=[FlowElement];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//ref=[FlowElement]
+		public Assignment getRefAssignment() { return cRefAssignment; }
+		
+		//[FlowElement]
+		public CrossReference getRefFlowElementCrossReference_0() { return cRefFlowElementCrossReference_0; }
+		
+		//ID
+		public RuleCall getRefFlowElementIDTerminalRuleCall_0_1() { return cRefFlowElementIDTerminalRuleCall_0_1; }
+	}
+	public class DelegateServiceTaskReferenceElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.DelegateServiceTaskReference");
+		private final Assignment cRefAssignment = (Assignment)rule.eContents().get(1);
+		private final CrossReference cRefDelegateServiceTaskFlowElementCrossReference_0 = (CrossReference)cRefAssignment.eContents().get(0);
+		private final RuleCall cRefDelegateServiceTaskFlowElementIDTerminalRuleCall_0_1 = (RuleCall)cRefDelegateServiceTaskFlowElementCrossReference_0.eContents().get(1);
+		
+		//DelegateServiceTaskReference:
+		//    ref=[DelegateServiceTaskFlowElement];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//ref=[DelegateServiceTaskFlowElement]
+		public Assignment getRefAssignment() { return cRefAssignment; }
+		
+		//[DelegateServiceTaskFlowElement]
+		public CrossReference getRefDelegateServiceTaskFlowElementCrossReference_0() { return cRefDelegateServiceTaskFlowElementCrossReference_0; }
+		
+		//ID
+		public RuleCall getRefDelegateServiceTaskFlowElementIDTerminalRuleCall_0_1() { return cRefDelegateServiceTaskFlowElementIDTerminalRuleCall_0_1; }
+	}
+	public class ExternalTopicElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ExternalTopic");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cExternalTopicKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		
+		//ExternalTopic:
+		//    'ExternalTopic' name=ID DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'ExternalTopic' name=ID DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//'ExternalTopic'
+		public Keyword getExternalTopicKeyword_0() { return cExternalTopicKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_2() { return cDECLARATION_FINISHEDTerminalRuleCall_2; }
+	}
+	public class ExternalTopicReferenceElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ExternalTopicReference");
+		private final Assignment cRefAssignment = (Assignment)rule.eContents().get(1);
+		private final CrossReference cRefExternalTopicCrossReference_0 = (CrossReference)cRefAssignment.eContents().get(0);
+		private final RuleCall cRefExternalTopicIDTerminalRuleCall_0_1 = (RuleCall)cRefExternalTopicCrossReference_0.eContents().get(1);
+		
+		//ExternalTopicReference:
+		//    ref=[ExternalTopic];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//ref=[ExternalTopic]
+		public Assignment getRefAssignment() { return cRefAssignment; }
+		
+		//[ExternalTopic]
+		public CrossReference getRefExternalTopicCrossReference_0() { return cRefExternalTopicCrossReference_0; }
+		
+		//ID
+		public RuleCall getRefExternalTopicIDTerminalRuleCall_0_1() { return cRefExternalTopicIDTerminalRuleCall_0_1; }
+	}
+	public class VariableElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Variable");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cStringVariableParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cIntVariableParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cBooleanVariableParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		
+		//Variable:
+		//    StringVariable | IntVariable | BooleanVariable;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//StringVariable | IntVariable | BooleanVariable
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//StringVariable
+		public RuleCall getStringVariableParserRuleCall_0() { return cStringVariableParserRuleCall_0; }
+		
+		//IntVariable
+		public RuleCall getIntVariableParserRuleCall_1() { return cIntVariableParserRuleCall_1; }
+		
+		//BooleanVariable
+		public RuleCall getBooleanVariableParserRuleCall_2() { return cBooleanVariableParserRuleCall_2; }
+	}
+	public class VariableReferenceElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.VariableReference");
+		private final Assignment cRefAssignment = (Assignment)rule.eContents().get(1);
+		private final CrossReference cRefVariableCrossReference_0 = (CrossReference)cRefAssignment.eContents().get(0);
+		private final RuleCall cRefVariableIDTerminalRuleCall_0_1 = (RuleCall)cRefVariableCrossReference_0.eContents().get(1);
+		
+		//VariableReference:
+		//    ref=[Variable];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//ref=[Variable]
+		public Assignment getRefAssignment() { return cRefAssignment; }
+		
+		//[Variable]
+		public CrossReference getRefVariableCrossReference_0() { return cRefVariableCrossReference_0; }
+		
+		//ID
+		public RuleCall getRefVariableIDTerminalRuleCall_0_1() { return cRefVariableIDTerminalRuleCall_0_1; }
+	}
+	public class StringVariableElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.StringVariable");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cStringKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cWithKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cProposalsKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		private final RuleCall cLIST_OPENTerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Assignment cProposalsAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
+		private final RuleCall cProposalsSTRINGTerminalRuleCall_6_0_0 = (RuleCall)cProposalsAssignment_6_0.eContents().get(0);
+		private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_6_1_0 = (RuleCall)cGroup_6_1.eContents().get(0);
+		private final Assignment cProposalsAssignment_6_1_1 = (Assignment)cGroup_6_1.eContents().get(1);
+		private final RuleCall cProposalsSTRINGTerminalRuleCall_6_1_1_0 = (RuleCall)cProposalsAssignment_6_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_7 = (RuleCall)cGroup.eContents().get(7);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_8 = (RuleCall)cGroup.eContents().get(8);
+		
+		//StringVariable:
+		//    "String" name=ID
+		//    "with" "proposals" ASSOCIATION LIST_OPEN (proposals+=STRING (SEPARATOR proposals+=STRING)*)? LIST_CLOSED
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"String" name=ID
+		//"with" "proposals" ASSOCIATION LIST_OPEN (proposals+=STRING (SEPARATOR proposals+=STRING)*)? LIST_CLOSED
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"String"
+		public Keyword getStringKeyword_0() { return cStringKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//"with"
+		public Keyword getWithKeyword_2() { return cWithKeyword_2; }
+		
+		//"proposals"
+		public Keyword getProposalsKeyword_3() { return cProposalsKeyword_3; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_4() { return cASSOCIATIONTerminalRuleCall_4; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_5() { return cLIST_OPENTerminalRuleCall_5; }
+		
+		//(proposals+=STRING (SEPARATOR proposals+=STRING)*)?
+		public Group getGroup_6() { return cGroup_6; }
+		
+		//proposals+=STRING
+		public Assignment getProposalsAssignment_6_0() { return cProposalsAssignment_6_0; }
+		
+		//STRING
+		public RuleCall getProposalsSTRINGTerminalRuleCall_6_0_0() { return cProposalsSTRINGTerminalRuleCall_6_0_0; }
+		
+		//(SEPARATOR proposals+=STRING)*
+		public Group getGroup_6_1() { return cGroup_6_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_6_1_0() { return cSEPARATORTerminalRuleCall_6_1_0; }
+		
+		//proposals+=STRING
+		public Assignment getProposalsAssignment_6_1_1() { return cProposalsAssignment_6_1_1; }
+		
+		//STRING
+		public RuleCall getProposalsSTRINGTerminalRuleCall_6_1_1_0() { return cProposalsSTRINGTerminalRuleCall_6_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_7() { return cLIST_CLOSEDTerminalRuleCall_7; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_8() { return cDECLARATION_FINISHEDTerminalRuleCall_8; }
+	}
+	public class IntVariableElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.IntVariable");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cIntegerKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cWithKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cProposalsKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		private final RuleCall cLIST_OPENTerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Assignment cProposalsAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
+		private final RuleCall cProposalsINTTerminalRuleCall_6_0_0 = (RuleCall)cProposalsAssignment_6_0.eContents().get(0);
+		private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_6_1_0 = (RuleCall)cGroup_6_1.eContents().get(0);
+		private final Assignment cProposalsAssignment_6_1_1 = (Assignment)cGroup_6_1.eContents().get(1);
+		private final RuleCall cProposalsINTTerminalRuleCall_6_1_1_0 = (RuleCall)cProposalsAssignment_6_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_7 = (RuleCall)cGroup.eContents().get(7);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_8 = (RuleCall)cGroup.eContents().get(8);
+		
+		//IntVariable:
+		//    "Integer" name=ID
+		//    "with" "proposals" ASSOCIATION LIST_OPEN (proposals+=INT (SEPARATOR proposals+=INT)*)? LIST_CLOSED
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"Integer" name=ID
+		//"with" "proposals" ASSOCIATION LIST_OPEN (proposals+=INT (SEPARATOR proposals+=INT)*)? LIST_CLOSED
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"Integer"
+		public Keyword getIntegerKeyword_0() { return cIntegerKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//"with"
+		public Keyword getWithKeyword_2() { return cWithKeyword_2; }
+		
+		//"proposals"
+		public Keyword getProposalsKeyword_3() { return cProposalsKeyword_3; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_4() { return cASSOCIATIONTerminalRuleCall_4; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_5() { return cLIST_OPENTerminalRuleCall_5; }
+		
+		//(proposals+=INT (SEPARATOR proposals+=INT)*)?
+		public Group getGroup_6() { return cGroup_6; }
+		
+		//proposals+=INT
+		public Assignment getProposalsAssignment_6_0() { return cProposalsAssignment_6_0; }
+		
+		//INT
+		public RuleCall getProposalsINTTerminalRuleCall_6_0_0() { return cProposalsINTTerminalRuleCall_6_0_0; }
+		
+		//(SEPARATOR proposals+=INT)*
+		public Group getGroup_6_1() { return cGroup_6_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_6_1_0() { return cSEPARATORTerminalRuleCall_6_1_0; }
+		
+		//proposals+=INT
+		public Assignment getProposalsAssignment_6_1_1() { return cProposalsAssignment_6_1_1; }
+		
+		//INT
+		public RuleCall getProposalsINTTerminalRuleCall_6_1_1_0() { return cProposalsINTTerminalRuleCall_6_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_7() { return cLIST_CLOSEDTerminalRuleCall_7; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_8() { return cDECLARATION_FINISHEDTerminalRuleCall_8; }
+	}
+	public class BooleanVariableElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BooleanVariable");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cBooleanKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cWithKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cProposalsKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		private final RuleCall cLIST_OPENTerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Assignment cProposalsAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
+		private final RuleCall cProposalsBooleanEnumRuleCall_6_0_0 = (RuleCall)cProposalsAssignment_6_0.eContents().get(0);
+		private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_6_1_0 = (RuleCall)cGroup_6_1.eContents().get(0);
+		private final Assignment cProposalsAssignment_6_1_1 = (Assignment)cGroup_6_1.eContents().get(1);
+		private final RuleCall cProposalsBooleanEnumRuleCall_6_1_1_0 = (RuleCall)cProposalsAssignment_6_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_7 = (RuleCall)cGroup.eContents().get(7);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_8 = (RuleCall)cGroup.eContents().get(8);
+		
+		//BooleanVariable:
+		//    "Boolean" name=ID
+		//    "with" "proposals" ASSOCIATION LIST_OPEN (proposals+=Boolean (SEPARATOR proposals+=Boolean)*)? LIST_CLOSED
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"Boolean" name=ID
+		//"with" "proposals" ASSOCIATION LIST_OPEN (proposals+=Boolean (SEPARATOR proposals+=Boolean)*)? LIST_CLOSED
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"Boolean"
+		public Keyword getBooleanKeyword_0() { return cBooleanKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//"with"
+		public Keyword getWithKeyword_2() { return cWithKeyword_2; }
+		
+		//"proposals"
+		public Keyword getProposalsKeyword_3() { return cProposalsKeyword_3; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_4() { return cASSOCIATIONTerminalRuleCall_4; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_5() { return cLIST_OPENTerminalRuleCall_5; }
+		
+		//(proposals+=Boolean (SEPARATOR proposals+=Boolean)*)?
+		public Group getGroup_6() { return cGroup_6; }
+		
+		//proposals+=Boolean
+		public Assignment getProposalsAssignment_6_0() { return cProposalsAssignment_6_0; }
+		
+		//Boolean
+		public RuleCall getProposalsBooleanEnumRuleCall_6_0_0() { return cProposalsBooleanEnumRuleCall_6_0_0; }
+		
+		//(SEPARATOR proposals+=Boolean)*
+		public Group getGroup_6_1() { return cGroup_6_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_6_1_0() { return cSEPARATORTerminalRuleCall_6_1_0; }
+		
+		//proposals+=Boolean
+		public Assignment getProposalsAssignment_6_1_1() { return cProposalsAssignment_6_1_1; }
+		
+		//Boolean
+		public RuleCall getProposalsBooleanEnumRuleCall_6_1_1_0() { return cProposalsBooleanEnumRuleCall_6_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_7() { return cLIST_CLOSEDTerminalRuleCall_7; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_8() { return cDECLARATION_FINISHEDTerminalRuleCall_8; }
+	}
+	public class LoopElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Loop");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cLoopKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cStartsKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cWithKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cStartAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cStartSTRINGTerminalRuleCall_4_0 = (RuleCall)cStartAssignment_4.eContents().get(0);
+		private final Keyword cFollowsKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Keyword cByKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		private final Assignment cFollowerAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cFollowerSTRINGTerminalRuleCall_7_0 = (RuleCall)cFollowerAssignment_7.eContents().get(0);
+		private final Keyword cEndsKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Keyword cWithKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		private final Assignment cEndAssignment_10 = (Assignment)cGroup.eContents().get(10);
+		private final RuleCall cEndSTRINGTerminalRuleCall_10_0 = (RuleCall)cEndAssignment_10.eContents().get(0);
+		private final Keyword cHasKeyword_11 = (Keyword)cGroup.eContents().get(11);
+		private final Keyword cComplexityKeyword_12 = (Keyword)cGroup.eContents().get(12);
+		private final Assignment cComplexityAssignment_13 = (Assignment)cGroup.eContents().get(13);
+		private final RuleCall cComplexityINTTerminalRuleCall_13_0 = (RuleCall)cComplexityAssignment_13.eContents().get(0);
+		private final Keyword cPassedKeyword_14 = (Keyword)cGroup.eContents().get(14);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_15 = (RuleCall)cGroup.eContents().get(15);
+		private final RuleCall cLIST_OPENTerminalRuleCall_16 = (RuleCall)cGroup.eContents().get(16);
+		private final Group cGroup_17 = (Group)cGroup.eContents().get(17);
+		private final Assignment cFrequenciesAssignment_17_0 = (Assignment)cGroup_17.eContents().get(0);
+		private final RuleCall cFrequenciesINTTerminalRuleCall_17_0_0 = (RuleCall)cFrequenciesAssignment_17_0.eContents().get(0);
+		private final Group cGroup_17_1 = (Group)cGroup_17.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_17_1_0 = (RuleCall)cGroup_17_1.eContents().get(0);
+		private final Assignment cFrequenciesAssignment_17_1_1 = (Assignment)cGroup_17_1.eContents().get(1);
+		private final RuleCall cFrequenciesINTTerminalRuleCall_17_1_1_0 = (RuleCall)cFrequenciesAssignment_17_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_18 = (RuleCall)cGroup.eContents().get(18);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_19 = (RuleCall)cGroup.eContents().get(19);
+		
+		//Loop:
+		//    "Loop" name=ID
+		//    "starts" "with" start=STRING
+		//    "follows" "by" follower=STRING
+		//    "ends" "with" end=STRING
+		//    "has" "complexity" complexity=INT
+		//    "passed" ASSOCIATION LIST_OPEN (frequencies+=INT (SEPARATOR frequencies+=INT)*)? LIST_CLOSED
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//"Loop" name=ID
+		//"starts" "with" start=STRING
+		//"follows" "by" follower=STRING
+		//"ends" "with" end=STRING
+		//"has" "complexity" complexity=INT
+		//"passed" ASSOCIATION LIST_OPEN (frequencies+=INT (SEPARATOR frequencies+=INT)*)? LIST_CLOSED
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//"Loop"
+		public Keyword getLoopKeyword_0() { return cLoopKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//"starts"
+		public Keyword getStartsKeyword_2() { return cStartsKeyword_2; }
+		
+		//"with"
+		public Keyword getWithKeyword_3() { return cWithKeyword_3; }
+		
+		//start=STRING
+		public Assignment getStartAssignment_4() { return cStartAssignment_4; }
+		
+		//STRING
+		public RuleCall getStartSTRINGTerminalRuleCall_4_0() { return cStartSTRINGTerminalRuleCall_4_0; }
+		
+		//"follows"
+		public Keyword getFollowsKeyword_5() { return cFollowsKeyword_5; }
+		
+		//"by"
+		public Keyword getByKeyword_6() { return cByKeyword_6; }
+		
+		//follower=STRING
+		public Assignment getFollowerAssignment_7() { return cFollowerAssignment_7; }
+		
+		//STRING
+		public RuleCall getFollowerSTRINGTerminalRuleCall_7_0() { return cFollowerSTRINGTerminalRuleCall_7_0; }
+		
+		//"ends"
+		public Keyword getEndsKeyword_8() { return cEndsKeyword_8; }
+		
+		//"with"
+		public Keyword getWithKeyword_9() { return cWithKeyword_9; }
+		
+		//end=STRING
+		public Assignment getEndAssignment_10() { return cEndAssignment_10; }
+		
+		//STRING
+		public RuleCall getEndSTRINGTerminalRuleCall_10_0() { return cEndSTRINGTerminalRuleCall_10_0; }
+		
+		//"has"
+		public Keyword getHasKeyword_11() { return cHasKeyword_11; }
+		
+		//"complexity"
+		public Keyword getComplexityKeyword_12() { return cComplexityKeyword_12; }
+		
+		//complexity=INT
+		public Assignment getComplexityAssignment_13() { return cComplexityAssignment_13; }
+		
+		//INT
+		public RuleCall getComplexityINTTerminalRuleCall_13_0() { return cComplexityINTTerminalRuleCall_13_0; }
+		
+		//"passed"
+		public Keyword getPassedKeyword_14() { return cPassedKeyword_14; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_15() { return cASSOCIATIONTerminalRuleCall_15; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_16() { return cLIST_OPENTerminalRuleCall_16; }
+		
+		//(frequencies+=INT (SEPARATOR frequencies+=INT)*)?
+		public Group getGroup_17() { return cGroup_17; }
+		
+		//frequencies+=INT
+		public Assignment getFrequenciesAssignment_17_0() { return cFrequenciesAssignment_17_0; }
+		
+		//INT
+		public RuleCall getFrequenciesINTTerminalRuleCall_17_0_0() { return cFrequenciesINTTerminalRuleCall_17_0_0; }
+		
+		//(SEPARATOR frequencies+=INT)*
+		public Group getGroup_17_1() { return cGroup_17_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_17_1_0() { return cSEPARATORTerminalRuleCall_17_1_0; }
+		
+		//frequencies+=INT
+		public Assignment getFrequenciesAssignment_17_1_1() { return cFrequenciesAssignment_17_1_1; }
+		
+		//INT
+		public RuleCall getFrequenciesINTTerminalRuleCall_17_1_1_0() { return cFrequenciesINTTerminalRuleCall_17_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_18() { return cLIST_CLOSEDTerminalRuleCall_18; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_19() { return cDECLARATION_FINISHEDTerminalRuleCall_19; }
+	}
+	public class FlowElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Flow");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFlowKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cForKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cBpmnReferenceAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cBpmnReferenceBPMNReferenceParserRuleCall_3_0 = (RuleCall)cBpmnReferenceAssignment_3.eContents().get(0);
+		private final Keyword cWithKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cElementsKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_6 = (RuleCall)cGroup.eContents().get(6);
+		private final RuleCall cLIST_OPENTerminalRuleCall_7 = (RuleCall)cGroup.eContents().get(7);
+		private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+		private final Assignment cInclElementsAssignment_8_0 = (Assignment)cGroup_8.eContents().get(0);
+		private final RuleCall cInclElementsFlowElementReferenceParserRuleCall_8_0_0 = (RuleCall)cInclElementsAssignment_8_0.eContents().get(0);
+		private final Group cGroup_8_1 = (Group)cGroup_8.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_8_1_0 = (RuleCall)cGroup_8_1.eContents().get(0);
+		private final Assignment cInclElementsAssignment_8_1_1 = (Assignment)cGroup_8_1.eContents().get(1);
+		private final RuleCall cInclElementsFlowElementReferenceParserRuleCall_8_1_1_0 = (RuleCall)cInclElementsAssignment_8_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_9 = (RuleCall)cGroup.eContents().get(9);
+		private final Group cGroup_10 = (Group)cGroup.eContents().get(10);
+		private final Keyword cWithoutKeyword_10_0 = (Keyword)cGroup_10.eContents().get(0);
+		private final Keyword cElementsKeyword_10_1 = (Keyword)cGroup_10.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_10_2 = (RuleCall)cGroup_10.eContents().get(2);
+		private final RuleCall cLIST_OPENTerminalRuleCall_10_3 = (RuleCall)cGroup_10.eContents().get(3);
+		private final Group cGroup_10_4 = (Group)cGroup_10.eContents().get(4);
+		private final Assignment cExclElementsAssignment_10_4_0 = (Assignment)cGroup_10_4.eContents().get(0);
+		private final RuleCall cExclElementsFlowElementReferenceParserRuleCall_10_4_0_0 = (RuleCall)cExclElementsAssignment_10_4_0.eContents().get(0);
+		private final Group cGroup_10_4_1 = (Group)cGroup_10_4.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_10_4_1_0 = (RuleCall)cGroup_10_4_1.eContents().get(0);
+		private final Assignment cExclElementsAssignment_10_4_1_1 = (Assignment)cGroup_10_4_1.eContents().get(1);
+		private final RuleCall cExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0 = (RuleCall)cExclElementsAssignment_10_4_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_10_5 = (RuleCall)cGroup_10.eContents().get(5);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_11 = (RuleCall)cGroup.eContents().get(11);
+		
+		//Flow:
+		//    'Flow' name=ID 'for' bpmnReference=BPMNReference
+		//    'with' 'elements' ASSOCIATION LIST_OPEN (inclElements+=FlowElementReference (SEPARATOR inclElements+=FlowElementReference)*)? LIST_CLOSED
+		//    ('without' 'elements' ASSOCIATION LIST_OPEN (exclElements+=FlowElementReference (SEPARATOR exclElements+=FlowElementReference)*)? LIST_CLOSED)?
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'Flow' name=ID 'for' bpmnReference=BPMNReference
+		//'with' 'elements' ASSOCIATION LIST_OPEN (inclElements+=FlowElementReference (SEPARATOR inclElements+=FlowElementReference)*)? LIST_CLOSED
+		//('without' 'elements' ASSOCIATION LIST_OPEN (exclElements+=FlowElementReference (SEPARATOR exclElements+=FlowElementReference)*)? LIST_CLOSED)?
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//'Flow'
+		public Keyword getFlowKeyword_0() { return cFlowKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//'for'
+		public Keyword getForKeyword_2() { return cForKeyword_2; }
+		
+		//bpmnReference=BPMNReference
+		public Assignment getBpmnReferenceAssignment_3() { return cBpmnReferenceAssignment_3; }
+		
+		//BPMNReference
+		public RuleCall getBpmnReferenceBPMNReferenceParserRuleCall_3_0() { return cBpmnReferenceBPMNReferenceParserRuleCall_3_0; }
+		
+		//'with'
+		public Keyword getWithKeyword_4() { return cWithKeyword_4; }
+		
+		//'elements'
+		public Keyword getElementsKeyword_5() { return cElementsKeyword_5; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_6() { return cASSOCIATIONTerminalRuleCall_6; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_7() { return cLIST_OPENTerminalRuleCall_7; }
+		
+		//(inclElements+=FlowElementReference (SEPARATOR inclElements+=FlowElementReference)*)?
+		public Group getGroup_8() { return cGroup_8; }
+		
+		//inclElements+=FlowElementReference
+		public Assignment getInclElementsAssignment_8_0() { return cInclElementsAssignment_8_0; }
+		
+		//FlowElementReference
+		public RuleCall getInclElementsFlowElementReferenceParserRuleCall_8_0_0() { return cInclElementsFlowElementReferenceParserRuleCall_8_0_0; }
+		
+		//(SEPARATOR inclElements+=FlowElementReference)*
+		public Group getGroup_8_1() { return cGroup_8_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_8_1_0() { return cSEPARATORTerminalRuleCall_8_1_0; }
+		
+		//inclElements+=FlowElementReference
+		public Assignment getInclElementsAssignment_8_1_1() { return cInclElementsAssignment_8_1_1; }
+		
+		//FlowElementReference
+		public RuleCall getInclElementsFlowElementReferenceParserRuleCall_8_1_1_0() { return cInclElementsFlowElementReferenceParserRuleCall_8_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_9() { return cLIST_CLOSEDTerminalRuleCall_9; }
+		
+		//('without' 'elements' ASSOCIATION LIST_OPEN (exclElements+=FlowElementReference (SEPARATOR exclElements+=FlowElementReference)*)? LIST_CLOSED)?
+		public Group getGroup_10() { return cGroup_10; }
+		
+		//'without'
+		public Keyword getWithoutKeyword_10_0() { return cWithoutKeyword_10_0; }
+		
+		//'elements'
+		public Keyword getElementsKeyword_10_1() { return cElementsKeyword_10_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_10_2() { return cASSOCIATIONTerminalRuleCall_10_2; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_10_3() { return cLIST_OPENTerminalRuleCall_10_3; }
+		
+		//(exclElements+=FlowElementReference (SEPARATOR exclElements+=FlowElementReference)*)?
+		public Group getGroup_10_4() { return cGroup_10_4; }
+		
+		//exclElements+=FlowElementReference
+		public Assignment getExclElementsAssignment_10_4_0() { return cExclElementsAssignment_10_4_0; }
+		
+		//FlowElementReference
+		public RuleCall getExclElementsFlowElementReferenceParserRuleCall_10_4_0_0() { return cExclElementsFlowElementReferenceParserRuleCall_10_4_0_0; }
+		
+		//(SEPARATOR exclElements+=FlowElementReference)*
+		public Group getGroup_10_4_1() { return cGroup_10_4_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_10_4_1_0() { return cSEPARATORTerminalRuleCall_10_4_1_0; }
+		
+		//exclElements+=FlowElementReference
+		public Assignment getExclElementsAssignment_10_4_1_1() { return cExclElementsAssignment_10_4_1_1; }
+		
+		//FlowElementReference
+		public RuleCall getExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0() { return cExclElementsFlowElementReferenceParserRuleCall_10_4_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_10_5() { return cLIST_CLOSEDTerminalRuleCall_10_5; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_11() { return cDECLARATION_FINISHEDTerminalRuleCall_11; }
+	}
+	public class FlowReferenceElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.FlowReference");
+		private final Assignment cRefAssignment = (Assignment)rule.eContents().get(1);
+		private final CrossReference cRefFlowCrossReference_0 = (CrossReference)cRefAssignment.eContents().get(0);
+		private final RuleCall cRefFlowIDTerminalRuleCall_0_1 = (RuleCall)cRefFlowCrossReference_0.eContents().get(1);
+		
+		//FlowReference:
+		//    ref=[Flow];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//ref=[Flow]
+		public Assignment getRefAssignment() { return cRefAssignment; }
+		
+		//[Flow]
+		public CrossReference getRefFlowCrossReference_0() { return cRefFlowCrossReference_0; }
+		
+		//ID
+		public RuleCall getRefFlowIDTerminalRuleCall_0_1() { return cRefFlowIDTerminalRuleCall_0_1; }
+	}
+	public class TestElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Test");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cTestKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cForKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cFlowReferenceAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cFlowReferenceFlowReferenceParserRuleCall_3_0 = (RuleCall)cFlowReferenceAssignment_3.eContents().get(0);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cWithKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Keyword cPriorityKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+		private final Assignment cPriorityAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
+		private final RuleCall cPriorityINTTerminalRuleCall_4_2_0 = (RuleCall)cPriorityAssignment_4_2.eContents().get(0);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Assignment cDeclarationsAssignment_5_0 = (Assignment)cGroup_5.eContents().get(0);
+		private final RuleCall cDeclarationsVariableDeclarationsParserRuleCall_5_0_0 = (RuleCall)cDeclarationsAssignment_5_0.eContents().get(0);
+		private final Group cGroup_5_1 = (Group)cGroup_5.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_5_1_0 = (RuleCall)cGroup_5_1.eContents().get(0);
+		private final Assignment cDeclarationsAssignment_5_1_1 = (Assignment)cGroup_5_1.eContents().get(1);
+		private final RuleCall cDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0 = (RuleCall)cDeclarationsAssignment_5_1_1.eContents().get(0);
+		private final Assignment cEndCheckAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cEndCheckEndChecksParserRuleCall_6_0 = (RuleCall)cEndCheckAssignment_6.eContents().get(0);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Keyword cWithKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+		private final Keyword cMocksKeyword_7_1 = (Keyword)cGroup_7.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_7_2 = (RuleCall)cGroup_7.eContents().get(2);
+		private final RuleCall cLIST_OPENTerminalRuleCall_7_3 = (RuleCall)cGroup_7.eContents().get(3);
+		private final Group cGroup_7_4 = (Group)cGroup_7.eContents().get(4);
+		private final Assignment cMocksAssignment_7_4_0 = (Assignment)cGroup_7_4.eContents().get(0);
+		private final RuleCall cMocksMockReferenceParserRuleCall_7_4_0_0 = (RuleCall)cMocksAssignment_7_4_0.eContents().get(0);
+		private final Group cGroup_7_4_1 = (Group)cGroup_7_4.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_7_4_1_0 = (RuleCall)cGroup_7_4_1.eContents().get(0);
+		private final Assignment cMocksAssignment_7_4_1_1 = (Assignment)cGroup_7_4_1.eContents().get(1);
+		private final RuleCall cMocksMockReferenceParserRuleCall_7_4_1_1_0 = (RuleCall)cMocksAssignment_7_4_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_7_5 = (RuleCall)cGroup_7.eContents().get(5);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_8 = (RuleCall)cGroup.eContents().get(8);
+		
+		//Test:
+		//    'Test' name=ID 'for' flowReference=FlowReference
+		//        ('with' 'priority' priority=INT)?
+		//        (declarations+=VariableDeclarations (SEPARATOR declarations+=VariableDeclarations)*)?
+		//        (endCheck=EndChecks)?
+		//        ('with' 'mocks' ASSOCIATION LIST_OPEN (mocks+=MockReference (SEPARATOR mocks+=MockReference)*)? LIST_CLOSED)?
+		//        DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'Test' name=ID 'for' flowReference=FlowReference
+		//    ('with' 'priority' priority=INT)?
+		//    (declarations+=VariableDeclarations (SEPARATOR declarations+=VariableDeclarations)*)?
+		//    (endCheck=EndChecks)?
+		//    ('with' 'mocks' ASSOCIATION LIST_OPEN (mocks+=MockReference (SEPARATOR mocks+=MockReference)*)? LIST_CLOSED)?
+		//    DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//'Test'
+		public Keyword getTestKeyword_0() { return cTestKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//'for'
+		public Keyword getForKeyword_2() { return cForKeyword_2; }
+		
+		//flowReference=FlowReference
+		public Assignment getFlowReferenceAssignment_3() { return cFlowReferenceAssignment_3; }
+		
+		//FlowReference
+		public RuleCall getFlowReferenceFlowReferenceParserRuleCall_3_0() { return cFlowReferenceFlowReferenceParserRuleCall_3_0; }
+		
+		//('with' 'priority' priority=INT)?
+		public Group getGroup_4() { return cGroup_4; }
+		
+		//'with'
+		public Keyword getWithKeyword_4_0() { return cWithKeyword_4_0; }
+		
+		//'priority'
+		public Keyword getPriorityKeyword_4_1() { return cPriorityKeyword_4_1; }
+		
+		//priority=INT
+		public Assignment getPriorityAssignment_4_2() { return cPriorityAssignment_4_2; }
+		
+		//INT
+		public RuleCall getPriorityINTTerminalRuleCall_4_2_0() { return cPriorityINTTerminalRuleCall_4_2_0; }
+		
+		//(declarations+=VariableDeclarations (SEPARATOR declarations+=VariableDeclarations)*)?
+		public Group getGroup_5() { return cGroup_5; }
+		
+		//declarations+=VariableDeclarations
+		public Assignment getDeclarationsAssignment_5_0() { return cDeclarationsAssignment_5_0; }
+		
+		//VariableDeclarations
+		public RuleCall getDeclarationsVariableDeclarationsParserRuleCall_5_0_0() { return cDeclarationsVariableDeclarationsParserRuleCall_5_0_0; }
+		
+		//(SEPARATOR declarations+=VariableDeclarations)*
+		public Group getGroup_5_1() { return cGroup_5_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_5_1_0() { return cSEPARATORTerminalRuleCall_5_1_0; }
+		
+		//declarations+=VariableDeclarations
+		public Assignment getDeclarationsAssignment_5_1_1() { return cDeclarationsAssignment_5_1_1; }
+		
+		//VariableDeclarations
+		public RuleCall getDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0() { return cDeclarationsVariableDeclarationsParserRuleCall_5_1_1_0; }
+		
+		//(endCheck=EndChecks)?
+		public Assignment getEndCheckAssignment_6() { return cEndCheckAssignment_6; }
+		
+		//EndChecks
+		public RuleCall getEndCheckEndChecksParserRuleCall_6_0() { return cEndCheckEndChecksParserRuleCall_6_0; }
+		
+		//('with' 'mocks' ASSOCIATION LIST_OPEN (mocks+=MockReference (SEPARATOR mocks+=MockReference)*)? LIST_CLOSED)?
+		public Group getGroup_7() { return cGroup_7; }
+		
+		//'with'
+		public Keyword getWithKeyword_7_0() { return cWithKeyword_7_0; }
+		
+		//'mocks'
+		public Keyword getMocksKeyword_7_1() { return cMocksKeyword_7_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_7_2() { return cASSOCIATIONTerminalRuleCall_7_2; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_7_3() { return cLIST_OPENTerminalRuleCall_7_3; }
+		
+		//(mocks+=MockReference (SEPARATOR mocks+=MockReference)*)?
+		public Group getGroup_7_4() { return cGroup_7_4; }
+		
+		//mocks+=MockReference
+		public Assignment getMocksAssignment_7_4_0() { return cMocksAssignment_7_4_0; }
+		
+		//MockReference
+		public RuleCall getMocksMockReferenceParserRuleCall_7_4_0_0() { return cMocksMockReferenceParserRuleCall_7_4_0_0; }
+		
+		//(SEPARATOR mocks+=MockReference)*
+		public Group getGroup_7_4_1() { return cGroup_7_4_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_7_4_1_0() { return cSEPARATORTerminalRuleCall_7_4_1_0; }
+		
+		//mocks+=MockReference
+		public Assignment getMocksAssignment_7_4_1_1() { return cMocksAssignment_7_4_1_1; }
+		
+		//MockReference
+		public RuleCall getMocksMockReferenceParserRuleCall_7_4_1_1_0() { return cMocksMockReferenceParserRuleCall_7_4_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_7_5() { return cLIST_CLOSEDTerminalRuleCall_7_5; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_8() { return cDECLARATION_FINISHEDTerminalRuleCall_8; }
+	}
+	public class VariableDeclarationsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclarations");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cWithKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cVariablesKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cForKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cTaskReferenceAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cTaskReferenceFlowElementReferenceParserRuleCall_3_0 = (RuleCall)cTaskReferenceAssignment_3.eContents().get(0);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		private final RuleCall cLIST_OPENTerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Assignment cVariablesAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
+		private final RuleCall cVariablesVariableDeclarationParserRuleCall_6_0_0 = (RuleCall)cVariablesAssignment_6_0.eContents().get(0);
+		private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_6_1_0 = (RuleCall)cGroup_6_1.eContents().get(0);
+		private final Assignment cVariablesAssignment_6_1_1 = (Assignment)cGroup_6_1.eContents().get(1);
+		private final RuleCall cVariablesVariableDeclarationParserRuleCall_6_1_1_0 = (RuleCall)cVariablesAssignment_6_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_7 = (RuleCall)cGroup.eContents().get(7);
+		
+		//VariableDeclarations:
+		//    'with' 'variables' 'for' taskReference=FlowElementReference ASSOCIATION LIST_OPEN (variables+=VariableDeclaration (SEPARATOR variables+=VariableDeclaration)*)? LIST_CLOSED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'with' 'variables' 'for' taskReference=FlowElementReference ASSOCIATION LIST_OPEN (variables+=VariableDeclaration (SEPARATOR variables+=VariableDeclaration)*)? LIST_CLOSED
+		public Group getGroup() { return cGroup; }
+		
+		//'with'
+		public Keyword getWithKeyword_0() { return cWithKeyword_0; }
+		
+		//'variables'
+		public Keyword getVariablesKeyword_1() { return cVariablesKeyword_1; }
+		
+		//'for'
+		public Keyword getForKeyword_2() { return cForKeyword_2; }
+		
+		//taskReference=FlowElementReference
+		public Assignment getTaskReferenceAssignment_3() { return cTaskReferenceAssignment_3; }
+		
+		//FlowElementReference
+		public RuleCall getTaskReferenceFlowElementReferenceParserRuleCall_3_0() { return cTaskReferenceFlowElementReferenceParserRuleCall_3_0; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_4() { return cASSOCIATIONTerminalRuleCall_4; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_5() { return cLIST_OPENTerminalRuleCall_5; }
+		
+		//(variables+=VariableDeclaration (SEPARATOR variables+=VariableDeclaration)*)?
+		public Group getGroup_6() { return cGroup_6; }
+		
+		//variables+=VariableDeclaration
+		public Assignment getVariablesAssignment_6_0() { return cVariablesAssignment_6_0; }
+		
+		//VariableDeclaration
+		public RuleCall getVariablesVariableDeclarationParserRuleCall_6_0_0() { return cVariablesVariableDeclarationParserRuleCall_6_0_0; }
+		
+		//(SEPARATOR variables+=VariableDeclaration)*
+		public Group getGroup_6_1() { return cGroup_6_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_6_1_0() { return cSEPARATORTerminalRuleCall_6_1_0; }
+		
+		//variables+=VariableDeclaration
+		public Assignment getVariablesAssignment_6_1_1() { return cVariablesAssignment_6_1_1; }
+		
+		//VariableDeclaration
+		public RuleCall getVariablesVariableDeclarationParserRuleCall_6_1_1_0() { return cVariablesVariableDeclarationParserRuleCall_6_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_7() { return cLIST_CLOSEDTerminalRuleCall_7; }
+	}
+	public class EndChecksElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.EndChecks");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cWithKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cCheckKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final RuleCall cLIST_OPENTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Assignment cEndChecksAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
+		private final RuleCall cEndChecksEndCheckParserRuleCall_4_0_0 = (RuleCall)cEndChecksAssignment_4_0.eContents().get(0);
+		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_4_1_0 = (RuleCall)cGroup_4_1.eContents().get(0);
+		private final Assignment cEndChecksAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+		private final RuleCall cEndChecksEndCheckParserRuleCall_4_1_1_0 = (RuleCall)cEndChecksAssignment_4_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
+		
+		//EndChecks:
+		//    'with' 'check' ASSOCIATION LIST_OPEN (endChecks+=EndCheck (SEPARATOR endChecks+=EndCheck)*)? LIST_CLOSED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'with' 'check' ASSOCIATION LIST_OPEN (endChecks+=EndCheck (SEPARATOR endChecks+=EndCheck)*)? LIST_CLOSED
+		public Group getGroup() { return cGroup; }
+		
+		//'with'
+		public Keyword getWithKeyword_0() { return cWithKeyword_0; }
+		
+		//'check'
+		public Keyword getCheckKeyword_1() { return cCheckKeyword_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_3() { return cLIST_OPENTerminalRuleCall_3; }
+		
+		//(endChecks+=EndCheck (SEPARATOR endChecks+=EndCheck)*)?
+		public Group getGroup_4() { return cGroup_4; }
+		
+		//endChecks+=EndCheck
+		public Assignment getEndChecksAssignment_4_0() { return cEndChecksAssignment_4_0; }
+		
+		//EndCheck
+		public RuleCall getEndChecksEndCheckParserRuleCall_4_0_0() { return cEndChecksEndCheckParserRuleCall_4_0_0; }
+		
+		//(SEPARATOR endChecks+=EndCheck)*
+		public Group getGroup_4_1() { return cGroup_4_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_4_1_0() { return cSEPARATORTerminalRuleCall_4_1_0; }
+		
+		//endChecks+=EndCheck
+		public Assignment getEndChecksAssignment_4_1_1() { return cEndChecksAssignment_4_1_1; }
+		
+		//EndCheck
+		public RuleCall getEndChecksEndCheckParserRuleCall_4_1_1_0() { return cEndChecksEndCheckParserRuleCall_4_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_5() { return cLIST_CLOSEDTerminalRuleCall_5; }
+	}
+	public class VariableDeclarationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.VariableDeclaration");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cStringVariableDeclarationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cIntVariableDeclarationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cBooleanVariableDeclarationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		
+		//VariableDeclaration:
+		//    StringVariableDeclaration | IntVariableDeclaration | BooleanVariableDeclaration;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//StringVariableDeclaration | IntVariableDeclaration | BooleanVariableDeclaration
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//StringVariableDeclaration
+		public RuleCall getStringVariableDeclarationParserRuleCall_0() { return cStringVariableDeclarationParserRuleCall_0; }
+		
+		//IntVariableDeclaration
+		public RuleCall getIntVariableDeclarationParserRuleCall_1() { return cIntVariableDeclarationParserRuleCall_1; }
+		
+		//BooleanVariableDeclaration
+		public RuleCall getBooleanVariableDeclarationParserRuleCall_2() { return cBooleanVariableDeclarationParserRuleCall_2; }
+	}
+	public class StringVariableDeclarationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.StringVariableDeclaration");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyStringVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyStringVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyStringVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueSTRINGTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//StringVariableDeclaration:
+		//    key=[StringVariable] '=' value=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[StringVariable] '=' value=STRING
+		public Group getGroup() { return cGroup; }
+		
+		//key=[StringVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[StringVariable]
+		public CrossReference getKeyStringVariableCrossReference_0_0() { return cKeyStringVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyStringVariableIDTerminalRuleCall_0_0_1() { return cKeyStringVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'='
+		public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; }
+		
+		//value=STRING
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//STRING
+		public RuleCall getValueSTRINGTerminalRuleCall_2_0() { return cValueSTRINGTerminalRuleCall_2_0; }
+	}
+	public class IntVariableDeclarationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.IntVariableDeclaration");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyIntVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyIntVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyIntVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueINTTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//IntVariableDeclaration:
+		//    key=[IntVariable] '=' value=INT;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[IntVariable] '=' value=INT
+		public Group getGroup() { return cGroup; }
+		
+		//key=[IntVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[IntVariable]
+		public CrossReference getKeyIntVariableCrossReference_0_0() { return cKeyIntVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyIntVariableIDTerminalRuleCall_0_0_1() { return cKeyIntVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'='
+		public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; }
+		
+		//value=INT
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//INT
+		public RuleCall getValueINTTerminalRuleCall_2_0() { return cValueINTTerminalRuleCall_2_0; }
+	}
+	public class BooleanVariableDeclarationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BooleanVariableDeclaration");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyBooleanVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyBooleanVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyBooleanVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueBooleanEnumRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//BooleanVariableDeclaration:
+		//    key=[BooleanVariable] '=' value=Boolean;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[BooleanVariable] '=' value=Boolean
+		public Group getGroup() { return cGroup; }
+		
+		//key=[BooleanVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[BooleanVariable]
+		public CrossReference getKeyBooleanVariableCrossReference_0_0() { return cKeyBooleanVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyBooleanVariableIDTerminalRuleCall_0_0_1() { return cKeyBooleanVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'='
+		public Keyword getEqualsSignKeyword_1() { return cEqualsSignKeyword_1; }
+		
+		//value=Boolean
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//Boolean
+		public RuleCall getValueBooleanEnumRuleCall_2_0() { return cValueBooleanEnumRuleCall_2_0; }
+	}
+	public class EndCheckElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.EndCheck");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cVariableEqualsParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cVariableNotEqualsParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//EndCheck:
+		//    VariableEquals | VariableNotEquals;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//VariableEquals | VariableNotEquals
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//VariableEquals
+		public RuleCall getVariableEqualsParserRuleCall_0() { return cVariableEqualsParserRuleCall_0; }
+		
+		//VariableNotEquals
+		public RuleCall getVariableNotEqualsParserRuleCall_1() { return cVariableNotEqualsParserRuleCall_1; }
+	}
+	public class VariableEqualsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.VariableEquals");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cStringVariableEqualsParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cIntVariableEqualsParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cBooleanVariableEqualsParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		
+		//VariableEquals:
+		//    StringVariableEquals | IntVariableEquals | BooleanVariableEquals;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//StringVariableEquals | IntVariableEquals | BooleanVariableEquals
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//StringVariableEquals
+		public RuleCall getStringVariableEqualsParserRuleCall_0() { return cStringVariableEqualsParserRuleCall_0; }
+		
+		//IntVariableEquals
+		public RuleCall getIntVariableEqualsParserRuleCall_1() { return cIntVariableEqualsParserRuleCall_1; }
+		
+		//BooleanVariableEquals
+		public RuleCall getBooleanVariableEqualsParserRuleCall_2() { return cBooleanVariableEqualsParserRuleCall_2; }
+	}
+	public class StringVariableEqualsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.StringVariableEquals");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyStringVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyStringVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyStringVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cEqualsSignEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueSTRINGTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//StringVariableEquals:
+		//    key=[StringVariable] '==' value=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[StringVariable] '==' value=STRING
+		public Group getGroup() { return cGroup; }
+		
+		//key=[StringVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[StringVariable]
+		public CrossReference getKeyStringVariableCrossReference_0_0() { return cKeyStringVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyStringVariableIDTerminalRuleCall_0_0_1() { return cKeyStringVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'=='
+		public Keyword getEqualsSignEqualsSignKeyword_1() { return cEqualsSignEqualsSignKeyword_1; }
+		
+		//value=STRING
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//STRING
+		public RuleCall getValueSTRINGTerminalRuleCall_2_0() { return cValueSTRINGTerminalRuleCall_2_0; }
+	}
+	public class IntVariableEqualsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.IntVariableEquals");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyIntVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyIntVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyIntVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cEqualsSignEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueINTTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//IntVariableEquals:
+		//    key=[IntVariable] '==' value=INT;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[IntVariable] '==' value=INT
+		public Group getGroup() { return cGroup; }
+		
+		//key=[IntVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[IntVariable]
+		public CrossReference getKeyIntVariableCrossReference_0_0() { return cKeyIntVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyIntVariableIDTerminalRuleCall_0_0_1() { return cKeyIntVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'=='
+		public Keyword getEqualsSignEqualsSignKeyword_1() { return cEqualsSignEqualsSignKeyword_1; }
+		
+		//value=INT
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//INT
+		public RuleCall getValueINTTerminalRuleCall_2_0() { return cValueINTTerminalRuleCall_2_0; }
+	}
+	public class BooleanVariableEqualsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BooleanVariableEquals");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyBooleanVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyBooleanVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyBooleanVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cEqualsSignEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueBooleanEnumRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//BooleanVariableEquals:
+		//    key=[BooleanVariable] '==' value=Boolean;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[BooleanVariable] '==' value=Boolean
+		public Group getGroup() { return cGroup; }
+		
+		//key=[BooleanVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[BooleanVariable]
+		public CrossReference getKeyBooleanVariableCrossReference_0_0() { return cKeyBooleanVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyBooleanVariableIDTerminalRuleCall_0_0_1() { return cKeyBooleanVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'=='
+		public Keyword getEqualsSignEqualsSignKeyword_1() { return cEqualsSignEqualsSignKeyword_1; }
+		
+		//value=Boolean
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//Boolean
+		public RuleCall getValueBooleanEnumRuleCall_2_0() { return cValueBooleanEnumRuleCall_2_0; }
+	}
+	public class VariableNotEqualsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.VariableNotEquals");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cStringVariableNotEqualsParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cIntVariableNotEqualsParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cBooleanVariableNotEqualsParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		
+		//VariableNotEquals:
+		//    StringVariableNotEquals | IntVariableNotEquals | BooleanVariableNotEquals;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//StringVariableNotEquals | IntVariableNotEquals | BooleanVariableNotEquals
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//StringVariableNotEquals
+		public RuleCall getStringVariableNotEqualsParserRuleCall_0() { return cStringVariableNotEqualsParserRuleCall_0; }
+		
+		//IntVariableNotEquals
+		public RuleCall getIntVariableNotEqualsParserRuleCall_1() { return cIntVariableNotEqualsParserRuleCall_1; }
+		
+		//BooleanVariableNotEquals
+		public RuleCall getBooleanVariableNotEqualsParserRuleCall_2() { return cBooleanVariableNotEqualsParserRuleCall_2; }
+	}
+	public class StringVariableNotEqualsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.StringVariableNotEquals");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyStringVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyStringVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyStringVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cExclamationMarkEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueSTRINGTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//StringVariableNotEquals:
+		//    key=[StringVariable] '!=' value=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[StringVariable] '!=' value=STRING
+		public Group getGroup() { return cGroup; }
+		
+		//key=[StringVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[StringVariable]
+		public CrossReference getKeyStringVariableCrossReference_0_0() { return cKeyStringVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyStringVariableIDTerminalRuleCall_0_0_1() { return cKeyStringVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'!='
+		public Keyword getExclamationMarkEqualsSignKeyword_1() { return cExclamationMarkEqualsSignKeyword_1; }
+		
+		//value=STRING
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//STRING
+		public RuleCall getValueSTRINGTerminalRuleCall_2_0() { return cValueSTRINGTerminalRuleCall_2_0; }
+	}
+	public class IntVariableNotEqualsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.IntVariableNotEquals");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyIntVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyIntVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyIntVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cExclamationMarkEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueINTTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//IntVariableNotEquals:
+		//    key=[IntVariable] '!=' value=INT;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[IntVariable] '!=' value=INT
+		public Group getGroup() { return cGroup; }
+		
+		//key=[IntVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[IntVariable]
+		public CrossReference getKeyIntVariableCrossReference_0_0() { return cKeyIntVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyIntVariableIDTerminalRuleCall_0_0_1() { return cKeyIntVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'!='
+		public Keyword getExclamationMarkEqualsSignKeyword_1() { return cExclamationMarkEqualsSignKeyword_1; }
+		
+		//value=INT
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//INT
+		public RuleCall getValueINTTerminalRuleCall_2_0() { return cValueINTTerminalRuleCall_2_0; }
+	}
+	public class BooleanVariableNotEqualsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BooleanVariableNotEquals");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyBooleanVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyBooleanVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyBooleanVariableCrossReference_0_0.eContents().get(1);
+		private final Keyword cExclamationMarkEqualsSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueBooleanEnumRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//BooleanVariableNotEquals:
+		//    key=[BooleanVariable] '!=' value=Boolean;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[BooleanVariable] '!=' value=Boolean
+		public Group getGroup() { return cGroup; }
+		
+		//key=[BooleanVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[BooleanVariable]
+		public CrossReference getKeyBooleanVariableCrossReference_0_0() { return cKeyBooleanVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyBooleanVariableIDTerminalRuleCall_0_0_1() { return cKeyBooleanVariableIDTerminalRuleCall_0_0_1; }
+		
+		//'!='
+		public Keyword getExclamationMarkEqualsSignKeyword_1() { return cExclamationMarkEqualsSignKeyword_1; }
+		
+		//value=Boolean
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//Boolean
+		public RuleCall getValueBooleanEnumRuleCall_2_0() { return cValueBooleanEnumRuleCall_2_0; }
+	}
+	public class MockElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Mock");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cExternalServiceMockParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cDelegateMockParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//Mock:
+		//    ExternalServiceMock | DelegateMock;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//ExternalServiceMock | DelegateMock
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//ExternalServiceMock
+		public RuleCall getExternalServiceMockParserRuleCall_0() { return cExternalServiceMockParserRuleCall_0; }
+		
+		//DelegateMock
+		public RuleCall getDelegateMockParserRuleCall_1() { return cDelegateMockParserRuleCall_1; }
+	}
+	public class MockReferenceElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.MockReference");
+		private final Assignment cRefAssignment = (Assignment)rule.eContents().get(1);
+		private final CrossReference cRefMockCrossReference_0 = (CrossReference)cRefAssignment.eContents().get(0);
+		private final RuleCall cRefMockIDTerminalRuleCall_0_1 = (RuleCall)cRefMockCrossReference_0.eContents().get(1);
+		
+		//MockReference:
+		//    ref=[Mock];
+		@Override public ParserRule getRule() { return rule; }
+		
+		//ref=[Mock]
+		public Assignment getRefAssignment() { return cRefAssignment; }
+		
+		//[Mock]
+		public CrossReference getRefMockCrossReference_0() { return cRefMockCrossReference_0; }
+		
+		//ID
+		public RuleCall getRefMockIDTerminalRuleCall_0_1() { return cRefMockIDTerminalRuleCall_0_1; }
+	}
+	public class ExternalServiceMockElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ExternalServiceMock");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cExternalServiceMockKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cForKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cTopicKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cExternalTopicAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cExternalTopicExternalTopicReferenceParserRuleCall_4_0 = (RuleCall)cExternalTopicAssignment_4.eContents().get(0);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Assignment cMockingRulesAssignment_5_0 = (Assignment)cGroup_5.eContents().get(0);
+		private final RuleCall cMockingRulesMockingRuleParserRuleCall_5_0_0 = (RuleCall)cMockingRulesAssignment_5_0.eContents().get(0);
+		private final Group cGroup_5_1 = (Group)cGroup_5.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_5_1_0 = (RuleCall)cGroup_5_1.eContents().get(0);
+		private final Assignment cMockingRulesAssignment_5_1_1 = (Assignment)cGroup_5_1.eContents().get(1);
+		private final RuleCall cMockingRulesMockingRuleParserRuleCall_5_1_1_0 = (RuleCall)cMockingRulesAssignment_5_1_1.eContents().get(0);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_6 = (RuleCall)cGroup.eContents().get(6);
+		
+		//ExternalServiceMock:
+		//    'ExternalServiceMock' name=ID 'for' 'topic' externalTopic=ExternalTopicReference
+		//    (mockingRules+=MockingRule (SEPARATOR mockingRules+=MockingRule)*)?
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'ExternalServiceMock' name=ID 'for' 'topic' externalTopic=ExternalTopicReference
+		//(mockingRules+=MockingRule (SEPARATOR mockingRules+=MockingRule)*)?
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//'ExternalServiceMock'
+		public Keyword getExternalServiceMockKeyword_0() { return cExternalServiceMockKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//'for'
+		public Keyword getForKeyword_2() { return cForKeyword_2; }
+		
+		//'topic'
+		public Keyword getTopicKeyword_3() { return cTopicKeyword_3; }
+		
+		//externalTopic=ExternalTopicReference
+		public Assignment getExternalTopicAssignment_4() { return cExternalTopicAssignment_4; }
+		
+		//ExternalTopicReference
+		public RuleCall getExternalTopicExternalTopicReferenceParserRuleCall_4_0() { return cExternalTopicExternalTopicReferenceParserRuleCall_4_0; }
+		
+		//(mockingRules+=MockingRule (SEPARATOR mockingRules+=MockingRule)*)?
+		public Group getGroup_5() { return cGroup_5; }
+		
+		//mockingRules+=MockingRule
+		public Assignment getMockingRulesAssignment_5_0() { return cMockingRulesAssignment_5_0; }
+		
+		//MockingRule
+		public RuleCall getMockingRulesMockingRuleParserRuleCall_5_0_0() { return cMockingRulesMockingRuleParserRuleCall_5_0_0; }
+		
+		//(SEPARATOR mockingRules+=MockingRule)*
+		public Group getGroup_5_1() { return cGroup_5_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_5_1_0() { return cSEPARATORTerminalRuleCall_5_1_0; }
+		
+		//mockingRules+=MockingRule
+		public Assignment getMockingRulesAssignment_5_1_1() { return cMockingRulesAssignment_5_1_1; }
+		
+		//MockingRule
+		public RuleCall getMockingRulesMockingRuleParserRuleCall_5_1_1_0() { return cMockingRulesMockingRuleParserRuleCall_5_1_1_0; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_6() { return cDECLARATION_FINISHEDTerminalRuleCall_6; }
+	}
+	public class DelegateMockElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.DelegateMock");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cDelegateMockKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cForKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cServiceTaskReferenceAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0 = (RuleCall)cServiceTaskReferenceAssignment_3.eContents().get(0);
+		private final Keyword cWithKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cDelegateKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cDelegateClassAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cDelegateClassSTRINGTerminalRuleCall_6_0 = (RuleCall)cDelegateClassAssignment_6.eContents().get(0);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Assignment cManualMocksAssignment_7_0 = (Assignment)cGroup_7.eContents().get(0);
+		private final RuleCall cManualMocksManualMockParserRuleCall_7_0_0 = (RuleCall)cManualMocksAssignment_7_0.eContents().get(0);
+		private final Group cGroup_7_1 = (Group)cGroup_7.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_7_1_0 = (RuleCall)cGroup_7_1.eContents().get(0);
+		private final Assignment cManualMocksAssignment_7_1_1 = (Assignment)cGroup_7_1.eContents().get(1);
+		private final RuleCall cManualMocksManualMockParserRuleCall_7_1_1_0 = (RuleCall)cManualMocksAssignment_7_1_1.eContents().get(0);
+		private final RuleCall cDECLARATION_FINISHEDTerminalRuleCall_8 = (RuleCall)cGroup.eContents().get(8);
+		
+		//DelegateMock:
+		//    'DelegateMock' name=ID 'for' serviceTaskReference=DelegateServiceTaskReference
+		//    'with' 'delegate' delegateClass=STRING
+		//    (manualMocks+=ManualMock (SEPARATOR manualMocks+=ManualMock)*)?
+		//    DECLARATION_FINISHED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'DelegateMock' name=ID 'for' serviceTaskReference=DelegateServiceTaskReference
+		//'with' 'delegate' delegateClass=STRING
+		//(manualMocks+=ManualMock (SEPARATOR manualMocks+=ManualMock)*)?
+		//DECLARATION_FINISHED
+		public Group getGroup() { return cGroup; }
+		
+		//'DelegateMock'
+		public Keyword getDelegateMockKeyword_0() { return cDelegateMockKeyword_0; }
+		
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+		
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+		
+		//'for'
+		public Keyword getForKeyword_2() { return cForKeyword_2; }
+		
+		//serviceTaskReference=DelegateServiceTaskReference
+		public Assignment getServiceTaskReferenceAssignment_3() { return cServiceTaskReferenceAssignment_3; }
+		
+		//DelegateServiceTaskReference
+		public RuleCall getServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0() { return cServiceTaskReferenceDelegateServiceTaskReferenceParserRuleCall_3_0; }
+		
+		//'with'
+		public Keyword getWithKeyword_4() { return cWithKeyword_4; }
+		
+		//'delegate'
+		public Keyword getDelegateKeyword_5() { return cDelegateKeyword_5; }
+		
+		//delegateClass=STRING
+		public Assignment getDelegateClassAssignment_6() { return cDelegateClassAssignment_6; }
+		
+		//STRING
+		public RuleCall getDelegateClassSTRINGTerminalRuleCall_6_0() { return cDelegateClassSTRINGTerminalRuleCall_6_0; }
+		
+		//(manualMocks+=ManualMock (SEPARATOR manualMocks+=ManualMock)*)?
+		public Group getGroup_7() { return cGroup_7; }
+		
+		//manualMocks+=ManualMock
+		public Assignment getManualMocksAssignment_7_0() { return cManualMocksAssignment_7_0; }
+		
+		//ManualMock
+		public RuleCall getManualMocksManualMockParserRuleCall_7_0_0() { return cManualMocksManualMockParserRuleCall_7_0_0; }
+		
+		//(SEPARATOR manualMocks+=ManualMock)*
+		public Group getGroup_7_1() { return cGroup_7_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_7_1_0() { return cSEPARATORTerminalRuleCall_7_1_0; }
+		
+		//manualMocks+=ManualMock
+		public Assignment getManualMocksAssignment_7_1_1() { return cManualMocksAssignment_7_1_1; }
+		
+		//ManualMock
+		public RuleCall getManualMocksManualMockParserRuleCall_7_1_1_0() { return cManualMocksManualMockParserRuleCall_7_1_1_0; }
+		
+		//DECLARATION_FINISHED
+		public RuleCall getDECLARATION_FINISHEDTerminalRuleCall_8() { return cDECLARATION_FINISHEDTerminalRuleCall_8; }
+	}
+	public class MockingRuleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.MockingRule");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cWithKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cRuleKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final RuleCall cASSOCIATIONTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
+		private final Keyword cIfKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final RuleCall cLIST_OPENTerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Assignment cComparisonsAssignment_5_0 = (Assignment)cGroup_5.eContents().get(0);
+		private final RuleCall cComparisonsCompareParserRuleCall_5_0_0 = (RuleCall)cComparisonsAssignment_5_0.eContents().get(0);
+		private final Group cGroup_5_1 = (Group)cGroup_5.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_5_1_0 = (RuleCall)cGroup_5_1.eContents().get(0);
+		private final Assignment cComparisonsAssignment_5_1_1 = (Assignment)cGroup_5_1.eContents().get(1);
+		private final RuleCall cComparisonsCompareParserRuleCall_5_1_1_0 = (RuleCall)cComparisonsAssignment_5_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_6 = (RuleCall)cGroup.eContents().get(6);
+		private final Keyword cSetKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final RuleCall cLIST_OPENTerminalRuleCall_8 = (RuleCall)cGroup.eContents().get(8);
+		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
+		private final Assignment cVariablesAssignment_9_0 = (Assignment)cGroup_9.eContents().get(0);
+		private final RuleCall cVariablesVariableDeclarationParserRuleCall_9_0_0 = (RuleCall)cVariablesAssignment_9_0.eContents().get(0);
+		private final Group cGroup_9_1 = (Group)cGroup_9.eContents().get(1);
+		private final RuleCall cSEPARATORTerminalRuleCall_9_1_0 = (RuleCall)cGroup_9_1.eContents().get(0);
+		private final Assignment cVariablesAssignment_9_1_1 = (Assignment)cGroup_9_1.eContents().get(1);
+		private final RuleCall cVariablesVariableDeclarationParserRuleCall_9_1_1_0 = (RuleCall)cVariablesAssignment_9_1_1.eContents().get(0);
+		private final RuleCall cLIST_CLOSEDTerminalRuleCall_10 = (RuleCall)cGroup.eContents().get(10);
+		
+		//MockingRule:
+		//    'with' 'rule' ASSOCIATION
+		//    'if' LIST_OPEN (comparisons+=Compare (SEPARATOR comparisons+=Compare)*)? LIST_CLOSED
+		//    'set' LIST_OPEN (variables+=VariableDeclaration (SEPARATOR variables+=VariableDeclaration)*)? LIST_CLOSED;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'with' 'rule' ASSOCIATION
+		//'if' LIST_OPEN (comparisons+=Compare (SEPARATOR comparisons+=Compare)*)? LIST_CLOSED
+		//'set' LIST_OPEN (variables+=VariableDeclaration (SEPARATOR variables+=VariableDeclaration)*)? LIST_CLOSED
+		public Group getGroup() { return cGroup; }
+		
+		//'with'
+		public Keyword getWithKeyword_0() { return cWithKeyword_0; }
+		
+		//'rule'
+		public Keyword getRuleKeyword_1() { return cRuleKeyword_1; }
+		
+		//ASSOCIATION
+		public RuleCall getASSOCIATIONTerminalRuleCall_2() { return cASSOCIATIONTerminalRuleCall_2; }
+		
+		//'if'
+		public Keyword getIfKeyword_3() { return cIfKeyword_3; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_4() { return cLIST_OPENTerminalRuleCall_4; }
+		
+		//(comparisons+=Compare (SEPARATOR comparisons+=Compare)*)?
+		public Group getGroup_5() { return cGroup_5; }
+		
+		//comparisons+=Compare
+		public Assignment getComparisonsAssignment_5_0() { return cComparisonsAssignment_5_0; }
+		
+		//Compare
+		public RuleCall getComparisonsCompareParserRuleCall_5_0_0() { return cComparisonsCompareParserRuleCall_5_0_0; }
+		
+		//(SEPARATOR comparisons+=Compare)*
+		public Group getGroup_5_1() { return cGroup_5_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_5_1_0() { return cSEPARATORTerminalRuleCall_5_1_0; }
+		
+		//comparisons+=Compare
+		public Assignment getComparisonsAssignment_5_1_1() { return cComparisonsAssignment_5_1_1; }
+		
+		//Compare
+		public RuleCall getComparisonsCompareParserRuleCall_5_1_1_0() { return cComparisonsCompareParserRuleCall_5_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_6() { return cLIST_CLOSEDTerminalRuleCall_6; }
+		
+		//'set'
+		public Keyword getSetKeyword_7() { return cSetKeyword_7; }
+		
+		//LIST_OPEN
+		public RuleCall getLIST_OPENTerminalRuleCall_8() { return cLIST_OPENTerminalRuleCall_8; }
+		
+		//(variables+=VariableDeclaration (SEPARATOR variables+=VariableDeclaration)*)?
+		public Group getGroup_9() { return cGroup_9; }
+		
+		//variables+=VariableDeclaration
+		public Assignment getVariablesAssignment_9_0() { return cVariablesAssignment_9_0; }
+		
+		//VariableDeclaration
+		public RuleCall getVariablesVariableDeclarationParserRuleCall_9_0_0() { return cVariablesVariableDeclarationParserRuleCall_9_0_0; }
+		
+		//(SEPARATOR variables+=VariableDeclaration)*
+		public Group getGroup_9_1() { return cGroup_9_1; }
+		
+		//SEPARATOR
+		public RuleCall getSEPARATORTerminalRuleCall_9_1_0() { return cSEPARATORTerminalRuleCall_9_1_0; }
+		
+		//variables+=VariableDeclaration
+		public Assignment getVariablesAssignment_9_1_1() { return cVariablesAssignment_9_1_1; }
+		
+		//VariableDeclaration
+		public RuleCall getVariablesVariableDeclarationParserRuleCall_9_1_1_0() { return cVariablesVariableDeclarationParserRuleCall_9_1_1_0; }
+		
+		//LIST_CLOSED
+		public RuleCall getLIST_CLOSEDTerminalRuleCall_10() { return cLIST_CLOSEDTerminalRuleCall_10; }
+	}
+	public class ManualMockElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ManualMock");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cWithKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cManualKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cServiceNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cServiceNameSTRINGTerminalRuleCall_2_0 = (RuleCall)cServiceNameAssignment_2.eContents().get(0);
+		private final Keyword cByKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Keyword cSetterKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cSetterAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cSetterSTRINGTerminalRuleCall_5_0 = (RuleCall)cSetterAssignment_5.eContents().get(0);
+		
+		//ManualMock:
+		//    'with' 'manual' serviceName=STRING 'by' 'setter' setter=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'with' 'manual' serviceName=STRING 'by' 'setter' setter=STRING
+		public Group getGroup() { return cGroup; }
+		
+		//'with'
+		public Keyword getWithKeyword_0() { return cWithKeyword_0; }
+		
+		//'manual'
+		public Keyword getManualKeyword_1() { return cManualKeyword_1; }
+		
+		//serviceName=STRING
+		public Assignment getServiceNameAssignment_2() { return cServiceNameAssignment_2; }
+		
+		//STRING
+		public RuleCall getServiceNameSTRINGTerminalRuleCall_2_0() { return cServiceNameSTRINGTerminalRuleCall_2_0; }
+		
+		//'by'
+		public Keyword getByKeyword_3() { return cByKeyword_3; }
+		
+		//'setter'
+		public Keyword getSetterKeyword_4() { return cSetterKeyword_4; }
+		
+		//setter=STRING
+		public Assignment getSetterAssignment_5() { return cSetterAssignment_5; }
+		
+		//STRING
+		public RuleCall getSetterSTRINGTerminalRuleCall_5_0() { return cSetterSTRINGTerminalRuleCall_5_0; }
+	}
+	public class CompareElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Compare");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cStringCompareParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cIntCompareParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cBooleanCompareParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		
+		//Compare:
+		//    StringCompare | IntCompare | BooleanCompare;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//StringCompare | IntCompare | BooleanCompare
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//StringCompare
+		public RuleCall getStringCompareParserRuleCall_0() { return cStringCompareParserRuleCall_0; }
+		
+		//IntCompare
+		public RuleCall getIntCompareParserRuleCall_1() { return cIntCompareParserRuleCall_1; }
+		
+		//BooleanCompare
+		public RuleCall getBooleanCompareParserRuleCall_2() { return cBooleanCompareParserRuleCall_2; }
+	}
+	public class StringCompareElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.StringCompare");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyStringVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyStringVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyStringVariableCrossReference_0_0.eContents().get(1);
+		private final Assignment cCompareSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cCompareSymbolStringCompareSymbolEnumRuleCall_1_0 = (RuleCall)cCompareSymbolAssignment_1.eContents().get(0);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueSTRINGTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//StringCompare:
+		//    key=[StringVariable] compareSymbol=StringCompareSymbol value=STRING;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[StringVariable] compareSymbol=StringCompareSymbol value=STRING
+		public Group getGroup() { return cGroup; }
+		
+		//key=[StringVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[StringVariable]
+		public CrossReference getKeyStringVariableCrossReference_0_0() { return cKeyStringVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyStringVariableIDTerminalRuleCall_0_0_1() { return cKeyStringVariableIDTerminalRuleCall_0_0_1; }
+		
+		//compareSymbol=StringCompareSymbol
+		public Assignment getCompareSymbolAssignment_1() { return cCompareSymbolAssignment_1; }
+		
+		//StringCompareSymbol
+		public RuleCall getCompareSymbolStringCompareSymbolEnumRuleCall_1_0() { return cCompareSymbolStringCompareSymbolEnumRuleCall_1_0; }
+		
+		//value=STRING
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//STRING
+		public RuleCall getValueSTRINGTerminalRuleCall_2_0() { return cValueSTRINGTerminalRuleCall_2_0; }
+	}
+	public class IntCompareElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.IntCompare");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyIntVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyIntVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyIntVariableCrossReference_0_0.eContents().get(1);
+		private final Assignment cCompareSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cCompareSymbolIntCompareSymbolEnumRuleCall_1_0 = (RuleCall)cCompareSymbolAssignment_1.eContents().get(0);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueINTTerminalRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//IntCompare:
+		//    key=[IntVariable] compareSymbol=IntCompareSymbol value=INT;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[IntVariable] compareSymbol=IntCompareSymbol value=INT
+		public Group getGroup() { return cGroup; }
+		
+		//key=[IntVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[IntVariable]
+		public CrossReference getKeyIntVariableCrossReference_0_0() { return cKeyIntVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyIntVariableIDTerminalRuleCall_0_0_1() { return cKeyIntVariableIDTerminalRuleCall_0_0_1; }
+		
+		//compareSymbol=IntCompareSymbol
+		public Assignment getCompareSymbolAssignment_1() { return cCompareSymbolAssignment_1; }
+		
+		//IntCompareSymbol
+		public RuleCall getCompareSymbolIntCompareSymbolEnumRuleCall_1_0() { return cCompareSymbolIntCompareSymbolEnumRuleCall_1_0; }
+		
+		//value=INT
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//INT
+		public RuleCall getValueINTTerminalRuleCall_2_0() { return cValueINTTerminalRuleCall_2_0; }
+	}
+	public class BooleanCompareElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BooleanCompare");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final CrossReference cKeyBooleanVariableCrossReference_0_0 = (CrossReference)cKeyAssignment_0.eContents().get(0);
+		private final RuleCall cKeyBooleanVariableIDTerminalRuleCall_0_0_1 = (RuleCall)cKeyBooleanVariableCrossReference_0_0.eContents().get(1);
+		private final Assignment cCompareSymbolAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0 = (RuleCall)cCompareSymbolAssignment_1.eContents().get(0);
+		private final Assignment cValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cValueBooleanEnumRuleCall_2_0 = (RuleCall)cValueAssignment_2.eContents().get(0);
+		
+		//BooleanCompare:
+		//    key=[BooleanVariable] compareSymbol=BooleanCompareSymbol value=Boolean;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//key=[BooleanVariable] compareSymbol=BooleanCompareSymbol value=Boolean
+		public Group getGroup() { return cGroup; }
+		
+		//key=[BooleanVariable]
+		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }
+		
+		//[BooleanVariable]
+		public CrossReference getKeyBooleanVariableCrossReference_0_0() { return cKeyBooleanVariableCrossReference_0_0; }
+		
+		//ID
+		public RuleCall getKeyBooleanVariableIDTerminalRuleCall_0_0_1() { return cKeyBooleanVariableIDTerminalRuleCall_0_0_1; }
+		
+		//compareSymbol=BooleanCompareSymbol
+		public Assignment getCompareSymbolAssignment_1() { return cCompareSymbolAssignment_1; }
+		
+		//BooleanCompareSymbol
+		public RuleCall getCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0() { return cCompareSymbolBooleanCompareSymbolEnumRuleCall_1_0; }
+		
+		//value=Boolean
+		public Assignment getValueAssignment_2() { return cValueAssignment_2; }
+		
+		//Boolean
+		public RuleCall getValueBooleanEnumRuleCall_2_0() { return cValueBooleanEnumRuleCall_2_0; }
+	}
+	
+	public class BooleanElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.Boolean");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cTRUEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cTRUETrueKeyword_0_0 = (Keyword)cTRUEEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cFALSEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cFALSEFalseKeyword_1_0 = (Keyword)cFALSEEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum Boolean:
+		//    TRUE="true" |
+		//    FALSE="false";
+		public EnumRule getRule() { return rule; }
+		
+		//TRUE="true" |
+		//FALSE="false"
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//TRUE="true"
+		public EnumLiteralDeclaration getTRUEEnumLiteralDeclaration_0() { return cTRUEEnumLiteralDeclaration_0; }
+		
+		//"true"
+		public Keyword getTRUETrueKeyword_0_0() { return cTRUETrueKeyword_0_0; }
+		
+		//FALSE="false"
+		public EnumLiteralDeclaration getFALSEEnumLiteralDeclaration_1() { return cFALSEEnumLiteralDeclaration_1; }
+		
+		//"false"
+		public Keyword getFALSEFalseKeyword_1_0() { return cFALSEFalseKeyword_1_0; }
+	}
+	public class StringCompareSymbolElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.StringCompareSymbol");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cEQUALSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cEQUALSEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQUALSEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNOT_EQUALSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQUALSEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum StringCompareSymbol:
+		//    EQUALS = "==" |
+		//    NOT_EQUALS = "!=";
+		public EnumRule getRule() { return rule; }
+		
+		//EQUALS = "==" |
+		//NOT_EQUALS = "!="
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//EQUALS = "=="
+		public EnumLiteralDeclaration getEQUALSEnumLiteralDeclaration_0() { return cEQUALSEnumLiteralDeclaration_0; }
+		
+		//"=="
+		public Keyword getEQUALSEqualsSignEqualsSignKeyword_0_0() { return cEQUALSEqualsSignEqualsSignKeyword_0_0; }
+		
+		//NOT_EQUALS = "!="
+		public EnumLiteralDeclaration getNOT_EQUALSEnumLiteralDeclaration_1() { return cNOT_EQUALSEnumLiteralDeclaration_1; }
+		
+		//"!="
+		public Keyword getNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0; }
+	}
+	public class IntCompareSymbolElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.IntCompareSymbol");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cEQUALSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cEQUALSEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQUALSEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNOT_EQUALSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQUALSEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cLOWEREnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cLOWERLessThanSignKeyword_2_0 = (Keyword)cLOWEREnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cGREATEREnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cGREATERGreaterThanSignKeyword_3_0 = (Keyword)cGREATEREnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cLOWER_EQUALSEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cLOWER_EQUALSLessThanSignEqualsSignKeyword_4_0 = (Keyword)cLOWER_EQUALSEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cGREATER_EQUALSEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0 = (Keyword)cGREATER_EQUALSEnumLiteralDeclaration_5.eContents().get(0);
+		
+		//enum IntCompareSymbol:
+		//    EQUALS = "==" |
+		//    NOT_EQUALS = "!=" |
+		//    LOWER = "<" |
+		//    GREATER = ">" |
+		//    LOWER_EQUALS = "<=" |
+		//    GREATER_EQUALS = ">=";
+		public EnumRule getRule() { return rule; }
+		
+		//EQUALS = "==" |
+		//NOT_EQUALS = "!=" |
+		//LOWER = "<" |
+		//GREATER = ">" |
+		//LOWER_EQUALS = "<=" |
+		//GREATER_EQUALS = ">="
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//EQUALS = "=="
+		public EnumLiteralDeclaration getEQUALSEnumLiteralDeclaration_0() { return cEQUALSEnumLiteralDeclaration_0; }
+		
+		//"=="
+		public Keyword getEQUALSEqualsSignEqualsSignKeyword_0_0() { return cEQUALSEqualsSignEqualsSignKeyword_0_0; }
+		
+		//NOT_EQUALS = "!="
+		public EnumLiteralDeclaration getNOT_EQUALSEnumLiteralDeclaration_1() { return cNOT_EQUALSEnumLiteralDeclaration_1; }
+		
+		//"!="
+		public Keyword getNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0; }
+		
+		//LOWER = "<"
+		public EnumLiteralDeclaration getLOWEREnumLiteralDeclaration_2() { return cLOWEREnumLiteralDeclaration_2; }
+		
+		//"<"
+		public Keyword getLOWERLessThanSignKeyword_2_0() { return cLOWERLessThanSignKeyword_2_0; }
+		
+		//GREATER = ">"
+		public EnumLiteralDeclaration getGREATEREnumLiteralDeclaration_3() { return cGREATEREnumLiteralDeclaration_3; }
+		
+		//">"
+		public Keyword getGREATERGreaterThanSignKeyword_3_0() { return cGREATERGreaterThanSignKeyword_3_0; }
+		
+		//LOWER_EQUALS = "<="
+		public EnumLiteralDeclaration getLOWER_EQUALSEnumLiteralDeclaration_4() { return cLOWER_EQUALSEnumLiteralDeclaration_4; }
+		
+		//"<="
+		public Keyword getLOWER_EQUALSLessThanSignEqualsSignKeyword_4_0() { return cLOWER_EQUALSLessThanSignEqualsSignKeyword_4_0; }
+		
+		//GREATER_EQUALS = ">="
+		public EnumLiteralDeclaration getGREATER_EQUALSEnumLiteralDeclaration_5() { return cGREATER_EQUALSEnumLiteralDeclaration_5; }
+		
+		//">="
+		public Keyword getGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0() { return cGREATER_EQUALSGreaterThanSignEqualsSignKeyword_5_0; }
+	}
+	public class BooleanCompareSymbolElements extends AbstractElementFinder.AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.BooleanCompareSymbol");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cEQUALSEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cEQUALSEqualsSignEqualsSignKeyword_0_0 = (Keyword)cEQUALSEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cNOT_EQUALSEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0 = (Keyword)cNOT_EQUALSEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum BooleanCompareSymbol:
+		//    EQUALS = "==" |
+		//    NOT_EQUALS = "!=";
+		public EnumRule getRule() { return rule; }
+		
+		//EQUALS = "==" |
+		//NOT_EQUALS = "!="
+		public Alternatives getAlternatives() { return cAlternatives; }
+		
+		//EQUALS = "=="
+		public EnumLiteralDeclaration getEQUALSEnumLiteralDeclaration_0() { return cEQUALSEnumLiteralDeclaration_0; }
+		
+		//"=="
+		public Keyword getEQUALSEqualsSignEqualsSignKeyword_0_0() { return cEQUALSEqualsSignEqualsSignKeyword_0_0; }
+		
+		//NOT_EQUALS = "!="
+		public EnumLiteralDeclaration getNOT_EQUALSEnumLiteralDeclaration_1() { return cNOT_EQUALSEnumLiteralDeclaration_1; }
+		
+		//"!="
+		public Keyword getNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0() { return cNOT_EQUALSExclamationMarkEqualsSignKeyword_1_0; }
+	}
+	
+	private final ModelElements pModel;
+	private final DeclarationElements pDeclaration;
+	private final BPMNDiagramElements pBPMNDiagram;
+	private final BPMNReferenceElements pBPMNReference;
+	private final FlowElementElements pFlowElement;
+	private final StartFlowElementElements pStartFlowElement;
+	private final EndFlowElementElements pEndFlowElement;
+	private final UserTaskFlowElementElements pUserTaskFlowElement;
+	private final ManualTaskFlowElementElements pManualTaskFlowElement;
+	private final ScriptTaskFlowElementElements pScriptTaskFlowElement;
+	private final ServiceTaskFlowElementElements pServiceTaskFlowElement;
+	private final DelegateServiceTaskFlowElementElements pDelegateServiceTaskFlowElement;
+	private final ExternalServiceTaskFlowElementElements pExternalServiceTaskFlowElement;
+	private final BusinessRuleTaskFlowElementElements pBusinessRuleTaskFlowElement;
+	private final GatewayFlowElementElements pGatewayFlowElement;
+	private final SequenceFlowElementElements pSequenceFlowElement;
+	private final FlowElementReferenceElements pFlowElementReference;
+	private final DelegateServiceTaskReferenceElements pDelegateServiceTaskReference;
+	private final ExternalTopicElements pExternalTopic;
+	private final ExternalTopicReferenceElements pExternalTopicReference;
+	private final VariableElements pVariable;
+	private final VariableReferenceElements pVariableReference;
+	private final StringVariableElements pStringVariable;
+	private final IntVariableElements pIntVariable;
+	private final BooleanVariableElements pBooleanVariable;
+	private final BooleanElements eBoolean;
+	private final LoopElements pLoop;
+	private final FlowElements pFlow;
+	private final FlowReferenceElements pFlowReference;
+	private final TestElements pTest;
+	private final VariableDeclarationsElements pVariableDeclarations;
+	private final EndChecksElements pEndChecks;
+	private final VariableDeclarationElements pVariableDeclaration;
+	private final StringVariableDeclarationElements pStringVariableDeclaration;
+	private final IntVariableDeclarationElements pIntVariableDeclaration;
+	private final BooleanVariableDeclarationElements pBooleanVariableDeclaration;
+	private final EndCheckElements pEndCheck;
+	private final VariableEqualsElements pVariableEquals;
+	private final StringVariableEqualsElements pStringVariableEquals;
+	private final IntVariableEqualsElements pIntVariableEquals;
+	private final BooleanVariableEqualsElements pBooleanVariableEquals;
+	private final VariableNotEqualsElements pVariableNotEquals;
+	private final StringVariableNotEqualsElements pStringVariableNotEquals;
+	private final IntVariableNotEqualsElements pIntVariableNotEquals;
+	private final BooleanVariableNotEqualsElements pBooleanVariableNotEquals;
+	private final MockElements pMock;
+	private final MockReferenceElements pMockReference;
+	private final ExternalServiceMockElements pExternalServiceMock;
+	private final DelegateMockElements pDelegateMock;
+	private final MockingRuleElements pMockingRule;
+	private final ManualMockElements pManualMock;
+	private final CompareElements pCompare;
+	private final StringCompareElements pStringCompare;
+	private final IntCompareElements pIntCompare;
+	private final BooleanCompareElements pBooleanCompare;
+	private final StringCompareSymbolElements eStringCompareSymbol;
+	private final IntCompareSymbolElements eIntCompareSymbol;
+	private final BooleanCompareSymbolElements eBooleanCompareSymbol;
+	private final TerminalRule tLIST_OPEN;
+	private final TerminalRule tLIST_CLOSED;
+	private final TerminalRule tASSOCIATION;
+	private final TerminalRule tSEPARATOR;
+	private final TerminalRule tDECLARATION_FINISHED;
+	private final TerminalRule tID;
+	
+	private final Grammar grammar;
+	
+	private final TerminalsGrammarAccess gaTerminals;
+
+	@Inject
+	public TestgeneratorDSLGrammarAccess(GrammarProvider grammarProvider,
+			TerminalsGrammarAccess gaTerminals) {
+		this.grammar = internalFindGrammar(grammarProvider);
+		this.gaTerminals = gaTerminals;
+		this.pModel = new ModelElements();
+		this.pDeclaration = new DeclarationElements();
+		this.pBPMNDiagram = new BPMNDiagramElements();
+		this.pBPMNReference = new BPMNReferenceElements();
+		this.pFlowElement = new FlowElementElements();
+		this.pStartFlowElement = new StartFlowElementElements();
+		this.pEndFlowElement = new EndFlowElementElements();
+		this.pUserTaskFlowElement = new UserTaskFlowElementElements();
+		this.pManualTaskFlowElement = new ManualTaskFlowElementElements();
+		this.pScriptTaskFlowElement = new ScriptTaskFlowElementElements();
+		this.pServiceTaskFlowElement = new ServiceTaskFlowElementElements();
+		this.pDelegateServiceTaskFlowElement = new DelegateServiceTaskFlowElementElements();
+		this.pExternalServiceTaskFlowElement = new ExternalServiceTaskFlowElementElements();
+		this.pBusinessRuleTaskFlowElement = new BusinessRuleTaskFlowElementElements();
+		this.pGatewayFlowElement = new GatewayFlowElementElements();
+		this.pSequenceFlowElement = new SequenceFlowElementElements();
+		this.pFlowElementReference = new FlowElementReferenceElements();
+		this.pDelegateServiceTaskReference = new DelegateServiceTaskReferenceElements();
+		this.pExternalTopic = new ExternalTopicElements();
+		this.pExternalTopicReference = new ExternalTopicReferenceElements();
+		this.pVariable = new VariableElements();
+		this.pVariableReference = new VariableReferenceElements();
+		this.pStringVariable = new StringVariableElements();
+		this.pIntVariable = new IntVariableElements();
+		this.pBooleanVariable = new BooleanVariableElements();
+		this.eBoolean = new BooleanElements();
+		this.pLoop = new LoopElements();
+		this.pFlow = new FlowElements();
+		this.pFlowReference = new FlowReferenceElements();
+		this.pTest = new TestElements();
+		this.pVariableDeclarations = new VariableDeclarationsElements();
+		this.pEndChecks = new EndChecksElements();
+		this.pVariableDeclaration = new VariableDeclarationElements();
+		this.pStringVariableDeclaration = new StringVariableDeclarationElements();
+		this.pIntVariableDeclaration = new IntVariableDeclarationElements();
+		this.pBooleanVariableDeclaration = new BooleanVariableDeclarationElements();
+		this.pEndCheck = new EndCheckElements();
+		this.pVariableEquals = new VariableEqualsElements();
+		this.pStringVariableEquals = new StringVariableEqualsElements();
+		this.pIntVariableEquals = new IntVariableEqualsElements();
+		this.pBooleanVariableEquals = new BooleanVariableEqualsElements();
+		this.pVariableNotEquals = new VariableNotEqualsElements();
+		this.pStringVariableNotEquals = new StringVariableNotEqualsElements();
+		this.pIntVariableNotEquals = new IntVariableNotEqualsElements();
+		this.pBooleanVariableNotEquals = new BooleanVariableNotEqualsElements();
+		this.pMock = new MockElements();
+		this.pMockReference = new MockReferenceElements();
+		this.pExternalServiceMock = new ExternalServiceMockElements();
+		this.pDelegateMock = new DelegateMockElements();
+		this.pMockingRule = new MockingRuleElements();
+		this.pManualMock = new ManualMockElements();
+		this.pCompare = new CompareElements();
+		this.pStringCompare = new StringCompareElements();
+		this.pIntCompare = new IntCompareElements();
+		this.pBooleanCompare = new BooleanCompareElements();
+		this.eStringCompareSymbol = new StringCompareSymbolElements();
+		this.eIntCompareSymbol = new IntCompareSymbolElements();
+		this.eBooleanCompareSymbol = new BooleanCompareSymbolElements();
+		this.tLIST_OPEN = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.LIST_OPEN");
+		this.tLIST_CLOSED = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.LIST_CLOSED");
+		this.tASSOCIATION = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ASSOCIATION");
+		this.tSEPARATOR = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.SEPARATOR");
+		this.tDECLARATION_FINISHED = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.DECLARATION_FINISHED");
+		this.tID = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "de.fhmuenster.masterthesis.TestgeneratorDSL.ID");
+	}
+	
+	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+		Grammar grammar = grammarProvider.getGrammar(this);
+		while (grammar != null) {
+			if ("de.fhmuenster.masterthesis.TestgeneratorDSL".equals(grammar.getName())) {
+				return grammar;
+			}
+			List<Grammar> grammars = grammar.getUsedGrammars();
+			if (!grammars.isEmpty()) {
+				grammar = grammars.iterator().next();
+			} else {
+				return null;
+			}
+		}
+		return grammar;
+	}
+	
+	@Override
+	public Grammar getGrammar() {
+		return grammar;
+	}
+	
+	
+	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+		return gaTerminals;
+	}
+
+	
+	//Model:
+	//    declarations+=Declaration*;
+	public ModelElements getModelAccess() {
+		return pModel;
+	}
+	
+	public ParserRule getModelRule() {
+		return getModelAccess().getRule();
+	}
+	
+	//Declaration:
+	//    BPMNDiagram | FlowElement | Variable | Flow | Test | Mock | ExternalTopic | Loop;
+	public DeclarationElements getDeclarationAccess() {
+		return pDeclaration;
+	}
+	
+	public ParserRule getDeclarationRule() {
+		return getDeclarationAccess().getRule();
+	}
+	
+	//BPMNDiagram:
+	//    "BPMNDiagram" name=ID
+	//        'with' 'testpackage' testpackage=STRING
+	//        'with' 'bpmn' bpmn=STRING
+	//        'with' 'key' key=STRING
+	//        ('with' 'dmn' ASSOCIATION LIST_OPEN (dmn+=STRING (SEPARATOR dmn+=STRING)*)? LIST_CLOSED)?
+	//        ('with' 'embedded' ASSOCIATION LIST_OPEN (embedded+=STRING (SEPARATOR embedded+=STRING)*)? LIST_CLOSED)?
+	//        DECLARATION_FINISHED;
+	public BPMNDiagramElements getBPMNDiagramAccess() {
+		return pBPMNDiagram;
+	}
+	
+	public ParserRule getBPMNDiagramRule() {
+		return getBPMNDiagramAccess().getRule();
+	}
+	
+	//BPMNReference:
+	//    ref=[BPMNDiagram];
+	public BPMNReferenceElements getBPMNReferenceAccess() {
+		return pBPMNReference;
+	}
+	
+	public ParserRule getBPMNReferenceRule() {
+		return getBPMNReferenceAccess().getRule();
+	}
+	
+	//FlowElement:
+	//    StartFlowElement | EndFlowElement | UserTaskFlowElement | ManualTaskFlowElement | ScriptTaskFlowElement | ServiceTaskFlowElement | BusinessRuleTaskFlowElement | GatewayFlowElement | SequenceFlowElement;
+	public FlowElementElements getFlowElementAccess() {
+		return pFlowElement;
+	}
+	
+	public ParserRule getFlowElementRule() {
+		return getFlowElementAccess().getRule();
+	}
+	
+	//StartFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "StartEvent"
+	//    ('with' 'inputVariables' ASSOCIATION LIST_OPEN (inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)? LIST_CLOSED)?
+	//    DECLARATION_FINISHED;
+	public StartFlowElementElements getStartFlowElementAccess() {
+		return pStartFlowElement;
+	}
+	
+	public ParserRule getStartFlowElementRule() {
+		return getStartFlowElementAccess().getRule();
+	}
+	
+	//EndFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "EndEvent" DECLARATION_FINISHED;
+	public EndFlowElementElements getEndFlowElementAccess() {
+		return pEndFlowElement;
+	}
+	
+	public ParserRule getEndFlowElementRule() {
+		return getEndFlowElementAccess().getRule();
+	}
+	
+	//UserTaskFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "UserTask"
+	//    ('with' 'inputVariables' ASSOCIATION LIST_OPEN (inputVariables+=VariableReference (SEPARATOR inputVariables+=VariableReference)*)? LIST_CLOSED)?
+	//    DECLARATION_FINISHED;
+	public UserTaskFlowElementElements getUserTaskFlowElementAccess() {
+		return pUserTaskFlowElement;
+	}
+	
+	public ParserRule getUserTaskFlowElementRule() {
+		return getUserTaskFlowElementAccess().getRule();
+	}
+	
+	//ManualTaskFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "ManualTask" DECLARATION_FINISHED;
+	public ManualTaskFlowElementElements getManualTaskFlowElementAccess() {
+		return pManualTaskFlowElement;
+	}
+	
+	public ParserRule getManualTaskFlowElementRule() {
+		return getManualTaskFlowElementAccess().getRule();
+	}
+	
+	//ScriptTaskFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "ScriptTask" DECLARATION_FINISHED;
+	public ScriptTaskFlowElementElements getScriptTaskFlowElementAccess() {
+		return pScriptTaskFlowElement;
+	}
+	
+	public ParserRule getScriptTaskFlowElementRule() {
+		return getScriptTaskFlowElementAccess().getRule();
+	}
+	
+	//ServiceTaskFlowElement:
+	//    DelegateServiceTaskFlowElement | ExternalServiceTaskFlowElement;
+	public ServiceTaskFlowElementElements getServiceTaskFlowElementAccess() {
+		return pServiceTaskFlowElement;
+	}
+	
+	public ParserRule getServiceTaskFlowElementRule() {
+		return getServiceTaskFlowElementAccess().getRule();
+	}
+	
+	//DelegateServiceTaskFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "ServiceTask"
+	//    'with' 'delegate' ASSOCIATION delegate=STRING
+	//    DECLARATION_FINISHED;
+	public DelegateServiceTaskFlowElementElements getDelegateServiceTaskFlowElementAccess() {
+		return pDelegateServiceTaskFlowElement;
+	}
+	
+	public ParserRule getDelegateServiceTaskFlowElementRule() {
+		return getDelegateServiceTaskFlowElementAccess().getRule();
+	}
+	
+	//ExternalServiceTaskFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "ServiceTask"
+	//    'with' 'external' ASSOCIATION externalTopic=ExternalTopicReference
+	//    ('with' 'hardcoded' 'inputs' ASSOCIATION LIST_OPEN (hardcodedInputs+=VariableDeclaration (SEPARATOR hardcodedInputs+=VariableDeclaration)*)? LIST_CLOSED)?
+	//    DECLARATION_FINISHED;
+	public ExternalServiceTaskFlowElementElements getExternalServiceTaskFlowElementAccess() {
+		return pExternalServiceTaskFlowElement;
+	}
+	
+	public ParserRule getExternalServiceTaskFlowElementRule() {
+		return getExternalServiceTaskFlowElementAccess().getRule();
+	}
+	
+	//BusinessRuleTaskFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "BusinessRuleTask" DECLARATION_FINISHED;
+	public BusinessRuleTaskFlowElementElements getBusinessRuleTaskFlowElementAccess() {
+		return pBusinessRuleTaskFlowElement;
+	}
+	
+	public ParserRule getBusinessRuleTaskFlowElementRule() {
+		return getBusinessRuleTaskFlowElementAccess().getRule();
+	}
+	
+	//GatewayFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "Gateway" DECLARATION_FINISHED;
+	public GatewayFlowElementElements getGatewayFlowElementAccess() {
+		return pGatewayFlowElement;
+	}
+	
+	public ParserRule getGatewayFlowElementRule() {
+		return getGatewayFlowElementAccess().getRule();
+	}
+	
+	//SequenceFlowElement:
+	//    "FlowElement" name=ID ASSOCIATION "SequenceFlow"
+	//    ('with' 'expression' ASSOCIATION expression=STRING)?
+	//    DECLARATION_FINISHED;
+	public SequenceFlowElementElements getSequenceFlowElementAccess() {
+		return pSequenceFlowElement;
+	}
+	
+	public ParserRule getSequenceFlowElementRule() {
+		return getSequenceFlowElementAccess().getRule();
+	}
+	
+	//FlowElementReference:
+	//    ref=[FlowElement];
+	public FlowElementReferenceElements getFlowElementReferenceAccess() {
+		return pFlowElementReference;
+	}
+	
+	public ParserRule getFlowElementReferenceRule() {
+		return getFlowElementReferenceAccess().getRule();
+	}
+	
+	//DelegateServiceTaskReference:
+	//    ref=[DelegateServiceTaskFlowElement];
+	public DelegateServiceTaskReferenceElements getDelegateServiceTaskReferenceAccess() {
+		return pDelegateServiceTaskReference;
+	}
+	
+	public ParserRule getDelegateServiceTaskReferenceRule() {
+		return getDelegateServiceTaskReferenceAccess().getRule();
+	}
+	
+	//ExternalTopic:
+	//    'ExternalTopic' name=ID DECLARATION_FINISHED;
+	public ExternalTopicElements getExternalTopicAccess() {
+		return pExternalTopic;
+	}
+	
+	public ParserRule getExternalTopicRule() {
+		return getExternalTopicAccess().getRule();
+	}
+	
+	//ExternalTopicReference:
+	//    ref=[ExternalTopic];
+	public ExternalTopicReferenceElements getExternalTopicReferenceAccess() {
+		return pExternalTopicReference;
+	}
+	
+	public ParserRule getExternalTopicReferenceRule() {
+		return getExternalTopicReferenceAccess().getRule();
+	}
+	
+	//Variable:
+	//    StringVariable | IntVariable | BooleanVariable;
+	public VariableElements getVariableAccess() {
+		return pVariable;
+	}
+	
+	public ParserRule getVariableRule() {
+		return getVariableAccess().getRule();
+	}
+	
+	//VariableReference:
+	//    ref=[Variable];
+	public VariableReferenceElements getVariableReferenceAccess() {
+		return pVariableReference;
+	}
+	
+	public ParserRule getVariableReferenceRule() {
+		return getVariableReferenceAccess().getRule();
+	}
+	
+	//StringVariable:
+	//    "String" name=ID
+	//    "with" "proposals" ASSOCIATION LIST_OPEN (proposals+=STRING (SEPARATOR proposals+=STRING)*)? LIST_CLOSED
+	//    DECLARATION_FINISHED;
+	public StringVariableElements getStringVariableAccess() {
+		return pStringVariable;
+	}
+	
+	public ParserRule getStringVariableRule() {
+		return getStringVariableAccess().getRule();
+	}
+	
+	//IntVariable:
+	//    "Integer" name=ID
+	//    "with" "proposals" ASSOCIATION LIST_OPEN (proposals+=INT (SEPARATOR proposals+=INT)*)? LIST_CLOSED
+	//    DECLARATION_FINISHED;
+	public IntVariableElements getIntVariableAccess() {
+		return pIntVariable;
+	}
+	
+	public ParserRule getIntVariableRule() {
+		return getIntVariableAccess().getRule();
+	}
+	
+	//BooleanVariable:
+	//    "Boolean" name=ID
+	//    "with" "proposals" ASSOCIATION LIST_OPEN (proposals+=Boolean (SEPARATOR proposals+=Boolean)*)? LIST_CLOSED
+	//    DECLARATION_FINISHED;
+	public BooleanVariableElements getBooleanVariableAccess() {
+		return pBooleanVariable;
+	}
+	
+	public ParserRule getBooleanVariableRule() {
+		return getBooleanVariableAccess().getRule();
+	}
+	
+	//enum Boolean:
+	//    TRUE="true" |
+	//    FALSE="false";
+	public BooleanElements getBooleanAccess() {
+		return eBoolean;
+	}
+	
+	public EnumRule getBooleanRule() {
+		return getBooleanAccess().getRule();
+	}
+	
+	//Loop:
+	//    "Loop" name=ID
+	//    "starts" "with" start=STRING
+	//    "follows" "by" follower=STRING
+	//    "ends" "with" end=STRING
+	//    "has" "complexity" complexity=INT
+	//    "passed" ASSOCIATION LIST_OPEN (frequencies+=INT (SEPARATOR frequencies+=INT)*)? LIST_CLOSED
+	//    DECLARATION_FINISHED;
+	public LoopElements getLoopAccess() {
+		return pLoop;
+	}
+	
+	public ParserRule getLoopRule() {
+		return getLoopAccess().getRule();
+	}
+	
+	//Flow:
+	//    'Flow' name=ID 'for' bpmnReference=BPMNReference
+	//    'with' 'elements' ASSOCIATION LIST_OPEN (inclElements+=FlowElementReference (SEPARATOR inclElements+=FlowElementReference)*)? LIST_CLOSED
+	//    ('without' 'elements' ASSOCIATION LIST_OPEN (exclElements+=FlowElementReference (SEPARATOR exclElements+=FlowElementReference)*)? LIST_CLOSED)?
+	//    DECLARATION_FINISHED;
+	public FlowElements getFlowAccess() {
+		return pFlow;
+	}
+	
+	public ParserRule getFlowRule() {
+		return getFlowAccess().getRule();
+	}
+	
+	//FlowReference:
+	//    ref=[Flow];
+	public FlowReferenceElements getFlowReferenceAccess() {
+		return pFlowReference;
+	}
+	
+	public ParserRule getFlowReferenceRule() {
+		return getFlowReferenceAccess().getRule();
+	}
+	
+	//Test:
+	//    'Test' name=ID 'for' flowReference=FlowReference
+	//        ('with' 'priority' priority=INT)?
+	//        (declarations+=VariableDeclarations (SEPARATOR declarations+=VariableDeclarations)*)?
+	//        (endCheck=EndChecks)?
+	//        ('with' 'mocks' ASSOCIATION LIST_OPEN (mocks+=MockReference (SEPARATOR mocks+=MockReference)*)? LIST_CLOSED)?
+	//        DECLARATION_FINISHED;
+	public TestElements getTestAccess() {
+		return pTest;
+	}
+	
+	public ParserRule getTestRule() {
+		return getTestAccess().getRule();
+	}
+	
+	//VariableDeclarations:
+	//    'with' 'variables' 'for' taskReference=FlowElementReference ASSOCIATION LIST_OPEN (variables+=VariableDeclaration (SEPARATOR variables+=VariableDeclaration)*)? LIST_CLOSED;
+	public VariableDeclarationsElements getVariableDeclarationsAccess() {
+		return pVariableDeclarations;
+	}
+	
+	public ParserRule getVariableDeclarationsRule() {
+		return getVariableDeclarationsAccess().getRule();
+	}
+	
+	//EndChecks:
+	//    'with' 'check' ASSOCIATION LIST_OPEN (endChecks+=EndCheck (SEPARATOR endChecks+=EndCheck)*)? LIST_CLOSED;
+	public EndChecksElements getEndChecksAccess() {
+		return pEndChecks;
+	}
+	
+	public ParserRule getEndChecksRule() {
+		return getEndChecksAccess().getRule();
+	}
+	
+	//VariableDeclaration:
+	//    StringVariableDeclaration | IntVariableDeclaration | BooleanVariableDeclaration;
+	public VariableDeclarationElements getVariableDeclarationAccess() {
+		return pVariableDeclaration;
+	}
+	
+	public ParserRule getVariableDeclarationRule() {
+		return getVariableDeclarationAccess().getRule();
+	}
+	
+	//StringVariableDeclaration:
+	//    key=[StringVariable] '=' value=STRING;
+	public StringVariableDeclarationElements getStringVariableDeclarationAccess() {
+		return pStringVariableDeclaration;
+	}
+	
+	public ParserRule getStringVariableDeclarationRule() {
+		return getStringVariableDeclarationAccess().getRule();
+	}
+	
+	//IntVariableDeclaration:
+	//    key=[IntVariable] '=' value=INT;
+	public IntVariableDeclarationElements getIntVariableDeclarationAccess() {
+		return pIntVariableDeclaration;
+	}
+	
+	public ParserRule getIntVariableDeclarationRule() {
+		return getIntVariableDeclarationAccess().getRule();
+	}
+	
+	//BooleanVariableDeclaration:
+	//    key=[BooleanVariable] '=' value=Boolean;
+	public BooleanVariableDeclarationElements getBooleanVariableDeclarationAccess() {
+		return pBooleanVariableDeclaration;
+	}
+	
+	public ParserRule getBooleanVariableDeclarationRule() {
+		return getBooleanVariableDeclarationAccess().getRule();
+	}
+	
+	//EndCheck:
+	//    VariableEquals | VariableNotEquals;
+	public EndCheckElements getEndCheckAccess() {
+		return pEndCheck;
+	}
+	
+	public ParserRule getEndCheckRule() {
+		return getEndCheckAccess().getRule();
+	}
+	
+	//VariableEquals:
+	//    StringVariableEquals | IntVariableEquals | BooleanVariableEquals;
+	public VariableEqualsElements getVariableEqualsAccess() {
+		return pVariableEquals;
+	}
+	
+	public ParserRule getVariableEqualsRule() {
+		return getVariableEqualsAccess().getRule();
+	}
+	
+	//StringVariableEquals:
+	//    key=[StringVariable] '==' value=STRING;
+	public StringVariableEqualsElements getStringVariableEqualsAccess() {
+		return pStringVariableEquals;
+	}
+	
+	public ParserRule getStringVariableEqualsRule() {
+		return getStringVariableEqualsAccess().getRule();
+	}
+	
+	//IntVariableEquals:
+	//    key=[IntVariable] '==' value=INT;
+	public IntVariableEqualsElements getIntVariableEqualsAccess() {
+		return pIntVariableEquals;
+	}
+	
+	public ParserRule getIntVariableEqualsRule() {
+		return getIntVariableEqualsAccess().getRule();
+	}
+	
+	//BooleanVariableEquals:
+	//    key=[BooleanVariable] '==' value=Boolean;
+	public BooleanVariableEqualsElements getBooleanVariableEqualsAccess() {
+		return pBooleanVariableEquals;
+	}
+	
+	public ParserRule getBooleanVariableEqualsRule() {
+		return getBooleanVariableEqualsAccess().getRule();
+	}
+	
+	//VariableNotEquals:
+	//    StringVariableNotEquals | IntVariableNotEquals | BooleanVariableNotEquals;
+	public VariableNotEqualsElements getVariableNotEqualsAccess() {
+		return pVariableNotEquals;
+	}
+	
+	public ParserRule getVariableNotEqualsRule() {
+		return getVariableNotEqualsAccess().getRule();
+	}
+	
+	//StringVariableNotEquals:
+	//    key=[StringVariable] '!=' value=STRING;
+	public StringVariableNotEqualsElements getStringVariableNotEqualsAccess() {
+		return pStringVariableNotEquals;
+	}
+	
+	public ParserRule getStringVariableNotEqualsRule() {
+		return getStringVariableNotEqualsAccess().getRule();
+	}
+	
+	//IntVariableNotEquals:
+	//    key=[IntVariable] '!=' value=INT;
+	public IntVariableNotEqualsElements getIntVariableNotEqualsAccess() {
+		return pIntVariableNotEquals;
+	}
+	
+	public ParserRule getIntVariableNotEqualsRule() {
+		return getIntVariableNotEqualsAccess().getRule();
+	}
+	
+	//BooleanVariableNotEquals:
+	//    key=[BooleanVariable] '!=' value=Boolean;
+	public BooleanVariableNotEqualsElements getBooleanVariableNotEqualsAccess() {
+		return pBooleanVariableNotEquals;
+	}
+	
+	public ParserRule getBooleanVariableNotEqualsRule() {
+		return getBooleanVariableNotEqualsAccess().getRule();
+	}
+	
+	//Mock:
+	//    ExternalServiceMock | DelegateMock;
+	public MockElements getMockAccess() {
+		return pMock;
+	}
+	
+	public ParserRule getMockRule() {
+		return getMockAccess().getRule();
+	}
+	
+	//MockReference:
+	//    ref=[Mock];
+	public MockReferenceElements getMockReferenceAccess() {
+		return pMockReference;
+	}
+	
+	public ParserRule getMockReferenceRule() {
+		return getMockReferenceAccess().getRule();
+	}
+	
+	//ExternalServiceMock:
+	//    'ExternalServiceMock' name=ID 'for' 'topic' externalTopic=ExternalTopicReference
+	//    (mockingRules+=MockingRule (SEPARATOR mockingRules+=MockingRule)*)?
+	//    DECLARATION_FINISHED;
+	public ExternalServiceMockElements getExternalServiceMockAccess() {
+		return pExternalServiceMock;
+	}
+	
+	public ParserRule getExternalServiceMockRule() {
+		return getExternalServiceMockAccess().getRule();
+	}
+	
+	//DelegateMock:
+	//    'DelegateMock' name=ID 'for' serviceTaskReference=DelegateServiceTaskReference
+	//    'with' 'delegate' delegateClass=STRING
+	//    (manualMocks+=ManualMock (SEPARATOR manualMocks+=ManualMock)*)?
+	//    DECLARATION_FINISHED;
+	public DelegateMockElements getDelegateMockAccess() {
+		return pDelegateMock;
+	}
+	
+	public ParserRule getDelegateMockRule() {
+		return getDelegateMockAccess().getRule();
+	}
+	
+	//MockingRule:
+	//    'with' 'rule' ASSOCIATION
+	//    'if' LIST_OPEN (comparisons+=Compare (SEPARATOR comparisons+=Compare)*)? LIST_CLOSED
+	//    'set' LIST_OPEN (variables+=VariableDeclaration (SEPARATOR variables+=VariableDeclaration)*)? LIST_CLOSED;
+	public MockingRuleElements getMockingRuleAccess() {
+		return pMockingRule;
+	}
+	
+	public ParserRule getMockingRuleRule() {
+		return getMockingRuleAccess().getRule();
+	}
+	
+	//ManualMock:
+	//    'with' 'manual' serviceName=STRING 'by' 'setter' setter=STRING;
+	public ManualMockElements getManualMockAccess() {
+		return pManualMock;
+	}
+	
+	public ParserRule getManualMockRule() {
+		return getManualMockAccess().getRule();
+	}
+	
+	//Compare:
+	//    StringCompare | IntCompare | BooleanCompare;
+	public CompareElements getCompareAccess() {
+		return pCompare;
+	}
+	
+	public ParserRule getCompareRule() {
+		return getCompareAccess().getRule();
+	}
+	
+	//StringCompare:
+	//    key=[StringVariable] compareSymbol=StringCompareSymbol value=STRING;
+	public StringCompareElements getStringCompareAccess() {
+		return pStringCompare;
+	}
+	
+	public ParserRule getStringCompareRule() {
+		return getStringCompareAccess().getRule();
+	}
+	
+	//IntCompare:
+	//    key=[IntVariable] compareSymbol=IntCompareSymbol value=INT;
+	public IntCompareElements getIntCompareAccess() {
+		return pIntCompare;
+	}
+	
+	public ParserRule getIntCompareRule() {
+		return getIntCompareAccess().getRule();
+	}
+	
+	//BooleanCompare:
+	//    key=[BooleanVariable] compareSymbol=BooleanCompareSymbol value=Boolean;
+	public BooleanCompareElements getBooleanCompareAccess() {
+		return pBooleanCompare;
+	}
+	
+	public ParserRule getBooleanCompareRule() {
+		return getBooleanCompareAccess().getRule();
+	}
+	
+	//enum StringCompareSymbol:
+	//    EQUALS = "==" |
+	//    NOT_EQUALS = "!=";
+	public StringCompareSymbolElements getStringCompareSymbolAccess() {
+		return eStringCompareSymbol;
+	}
+	
+	public EnumRule getStringCompareSymbolRule() {
+		return getStringCompareSymbolAccess().getRule();
+	}
+	
+	//enum IntCompareSymbol:
+	//    EQUALS = "==" |
+	//    NOT_EQUALS = "!=" |
+	//    LOWER = "<" |
+	//    GREATER = ">" |
+	//    LOWER_EQUALS = "<=" |
+	//    GREATER_EQUALS = ">=";
+	public IntCompareSymbolElements getIntCompareSymbolAccess() {
+		return eIntCompareSymbol;
+	}
+	
+	public EnumRule getIntCompareSymbolRule() {
+		return getIntCompareSymbolAccess().getRule();
+	}
+	
+	//enum BooleanCompareSymbol:
+	//    EQUALS = "==" |
+	//    NOT_EQUALS = "!=";
+	public BooleanCompareSymbolElements getBooleanCompareSymbolAccess() {
+		return eBooleanCompareSymbol;
+	}
+	
+	public EnumRule getBooleanCompareSymbolRule() {
+		return getBooleanCompareSymbolAccess().getRule();
+	}
+	
+	//terminal LIST_OPEN : '[';
+	public TerminalRule getLIST_OPENRule() {
+		return tLIST_OPEN;
+	}
+	
+	//terminal LIST_CLOSED : ']';
+	public TerminalRule getLIST_CLOSEDRule() {
+		return tLIST_CLOSED;
+	}
+	
+	//terminal ASSOCIATION : ':';
+	public TerminalRule getASSOCIATIONRule() {
+		return tASSOCIATION;
+	}
+	
+	//terminal SEPARATOR : ',';
+	public TerminalRule getSEPARATORRule() {
+		return tSEPARATOR;
+	}
+	
+	//terminal DECLARATION_FINISHED : ';';
+	public TerminalRule getDECLARATION_FINISHEDRule() {
+		return tDECLARATION_FINISHED;
+	}
+	
+	//@Override
+	//terminal ID: '^'?('a'..'z'|'A'..'Z'|'_'|'-') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'-')*;
+	public TerminalRule getIDRule() {
+		return tID;
+	}
+	
+	//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();
+	}
+}
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -3836,3 +7672,4 @@ public class TestgeneratorDSLGrammarAccess extends AbstractElementFinder.Abstrac
 		return gaTerminals.getANY_OTHERRule();
 	}
 }
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BPMNDiagram.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BPMNDiagram.java
index 2aff3d167cfa3f0f4dbcdb4f5c9e4e035189d700..dd4374a98f115150ee1cc8c9dedfd694f147a10f 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BPMNDiagram.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BPMNDiagram.java
@@ -1,3 +1,125 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>BPMN Diagram</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getTestpackage <em>Testpackage</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getBpmn <em>Bpmn</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getDmn <em>Dmn</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getEmbedded <em>Embedded</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBPMNDiagram()
+ * @model
+ * @generated
+ */
+public interface BPMNDiagram extends Declaration
+{
+  /**
+   * Returns the value of the '<em><b>Testpackage</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Testpackage</em>' attribute.
+   * @see #setTestpackage(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBPMNDiagram_Testpackage()
+   * @model
+   * @generated
+   */
+  String getTestpackage();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getTestpackage <em>Testpackage</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Testpackage</em>' attribute.
+   * @see #getTestpackage()
+   * @generated
+   */
+  void setTestpackage(String value);
+
+  /**
+   * Returns the value of the '<em><b>Bpmn</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Bpmn</em>' attribute.
+   * @see #setBpmn(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBPMNDiagram_Bpmn()
+   * @model
+   * @generated
+   */
+  String getBpmn();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getBpmn <em>Bpmn</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Bpmn</em>' attribute.
+   * @see #getBpmn()
+   * @generated
+   */
+  void setBpmn(String value);
+
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' attribute.
+   * @see #setKey(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBPMNDiagram_Key()
+   * @model
+   * @generated
+   */
+  String getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getKey <em>Key</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' attribute.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(String value);
+
+  /**
+   * Returns the value of the '<em><b>Dmn</b></em>' attribute list.
+   * The list contents are of type {@link java.lang.String}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Dmn</em>' attribute list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBPMNDiagram_Dmn()
+   * @model unique="false"
+   * @generated
+   */
+  EList<String> getDmn();
+
+  /**
+   * Returns the value of the '<em><b>Embedded</b></em>' attribute list.
+   * The list contents are of type {@link java.lang.String}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Embedded</em>' attribute list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBPMNDiagram_Embedded()
+   * @model unique="false"
+   * @generated
+   */
+  EList<String> getEmbedded();
+
+} // BPMNDiagram
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -118,3 +240,4 @@ public interface BPMNDiagram extends Declaration
   EList<String> getEmbedded();
 
 } // BPMNDiagram
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BPMNReference.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BPMNReference.java
index e4252cd7aad679934b1ef799b38bebd8247b40cf..aa5432cc102bd6aafc3a18b4d6c378050e14347b 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BPMNReference.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BPMNReference.java
@@ -1,3 +1,53 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>BPMN Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBPMNReference()
+ * @model
+ * @generated
+ */
+public interface BPMNReference extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(BPMNDiagram)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBPMNReference_Ref()
+   * @model
+   * @generated
+   */
+  BPMNDiagram getRef();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(BPMNDiagram value);
+
+} // BPMNReference
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -46,3 +96,4 @@ public interface BPMNReference extends EObject
   void setRef(BPMNDiagram value);
 
 } // BPMNReference
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Boolean.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Boolean.java
index 4a25798f5b82e034054645d4a5c32675ca044f43..abc667771f213da7d0732699a7ae7f750dd2cca5 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Boolean.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Boolean.java
@@ -1,3 +1,230 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Boolean</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBoolean()
+ * @model
+ * @generated
+ */
+public enum Boolean implements Enumerator
+{
+  /**
+   * The '<em><b>TRUE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #TRUE_VALUE
+   * @generated
+   * @ordered
+   */
+  TRUE(0, "TRUE", "true"),
+
+  /**
+   * The '<em><b>FALSE</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #FALSE_VALUE
+   * @generated
+   * @ordered
+   */
+  FALSE(1, "FALSE", "false");
+
+  /**
+   * The '<em><b>TRUE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #TRUE
+   * @model literal="true"
+   * @generated
+   * @ordered
+   */
+  public static final int TRUE_VALUE = 0;
+
+  /**
+   * The '<em><b>FALSE</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #FALSE
+   * @model literal="false"
+   * @generated
+   * @ordered
+   */
+  public static final int FALSE_VALUE = 1;
+
+  /**
+   * An array of all the '<em><b>Boolean</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final Boolean[] VALUES_ARRAY =
+    new Boolean[]
+    {
+      TRUE,
+      FALSE,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Boolean</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<Boolean> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Boolean</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Boolean get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Boolean result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Boolean</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Boolean getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      Boolean result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Boolean</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static Boolean get(int value)
+  {
+    switch (value)
+    {
+      case TRUE_VALUE: return TRUE;
+      case FALSE_VALUE: return FALSE;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private Boolean(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //Boolean
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -223,3 +450,4 @@ public enum Boolean implements Enumerator
   }
   
 } //Boolean
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanCompare.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanCompare.java
index 0da6347cfad87bd9a9f4109ef55116bacd37269d..84794dfd373bf14c43cd0173a5dd4585bb09ab32 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanCompare.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanCompare.java
@@ -1,3 +1,104 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Boolean Compare</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getCompareSymbol <em>Compare Symbol</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanCompare()
+ * @model
+ * @generated
+ */
+public interface BooleanCompare extends Compare
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(BooleanVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanCompare_Key()
+   * @model
+   * @generated
+   */
+  BooleanVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(BooleanVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Compare Symbol</b></em>' attribute.
+   * The literals are from the enumeration {@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Compare Symbol</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol
+   * @see #setCompareSymbol(BooleanCompareSymbol)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanCompare_CompareSymbol()
+   * @model
+   * @generated
+   */
+  BooleanCompareSymbol getCompareSymbol();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getCompareSymbol <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Compare Symbol</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol
+   * @see #getCompareSymbol()
+   * @generated
+   */
+  void setCompareSymbol(BooleanCompareSymbol value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * The literals are from the enumeration {@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see #setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanCompare_Value()
+   * @model
+   * @generated
+   */
+  de.fhmuenster.masterthesis.testgeneratorDSL.Boolean getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value);
+
+} // BooleanCompare
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -97,3 +198,4 @@ public interface BooleanCompare extends Compare
   void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value);
 
 } // BooleanCompare
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanCompareSymbol.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanCompareSymbol.java
index 050968681e1f0679ba87b90430ec5fa497065d95..eec62f9d9fa46557cfa18b48f19a120df6f3363c 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanCompareSymbol.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanCompareSymbol.java
@@ -1,3 +1,230 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Boolean Compare Symbol</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanCompareSymbol()
+ * @model
+ * @generated
+ */
+public enum BooleanCompareSymbol implements Enumerator
+{
+  /**
+   * The '<em><b>EQUALS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #EQUALS_VALUE
+   * @generated
+   * @ordered
+   */
+  EQUALS(0, "EQUALS", "=="),
+
+  /**
+   * The '<em><b>NOT EQUALS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NOT_EQUALS_VALUE
+   * @generated
+   * @ordered
+   */
+  NOT_EQUALS(1, "NOT_EQUALS", "!=");
+
+  /**
+   * The '<em><b>EQUALS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #EQUALS
+   * @model literal="=="
+   * @generated
+   * @ordered
+   */
+  public static final int EQUALS_VALUE = 0;
+
+  /**
+   * The '<em><b>NOT EQUALS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NOT_EQUALS
+   * @model literal="!="
+   * @generated
+   * @ordered
+   */
+  public static final int NOT_EQUALS_VALUE = 1;
+
+  /**
+   * An array of all the '<em><b>Boolean Compare Symbol</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final BooleanCompareSymbol[] VALUES_ARRAY =
+    new BooleanCompareSymbol[]
+    {
+      EQUALS,
+      NOT_EQUALS,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Boolean Compare Symbol</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<BooleanCompareSymbol> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Boolean Compare Symbol</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static BooleanCompareSymbol get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      BooleanCompareSymbol result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Boolean Compare Symbol</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static BooleanCompareSymbol getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      BooleanCompareSymbol result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Boolean Compare Symbol</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static BooleanCompareSymbol get(int value)
+  {
+    switch (value)
+    {
+      case EQUALS_VALUE: return EQUALS;
+      case NOT_EQUALS_VALUE: return NOT_EQUALS;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private BooleanCompareSymbol(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //BooleanCompareSymbol
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -223,3 +450,4 @@ public enum BooleanCompareSymbol implements Enumerator
   }
   
 } //BooleanCompareSymbol
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariable.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariable.java
index c25274966907c71dd47cecfda2937ac61ec65fa0..aa5a60ae4e504fc35fa0cdcdb4cf9ddce685a09c 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariable.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariable.java
@@ -1,3 +1,45 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Boolean Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable#getProposals <em>Proposals</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariable()
+ * @model
+ * @generated
+ */
+public interface BooleanVariable extends Variable
+{
+  /**
+   * Returns the value of the '<em><b>Proposals</b></em>' attribute list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean}.
+   * The literals are from the enumeration {@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Proposals</em>' attribute list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariable_Proposals()
+   * @model unique="false"
+   * @generated
+   */
+  EList<de.fhmuenster.masterthesis.testgeneratorDSL.Boolean> getProposals();
+
+} // BooleanVariable
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -38,3 +80,4 @@ public interface BooleanVariable extends Variable
   EList<de.fhmuenster.masterthesis.testgeneratorDSL.Boolean> getProposals();
 
 } // BooleanVariable
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableDeclaration.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableDeclaration.java
index ffdf6a8120ed0b578e1e16108e89b711c4febaad..d76fa9b5210eac7bd080b4e6bb2d8e578818d09a 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableDeclaration.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableDeclaration.java
@@ -1,3 +1,78 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Boolean Variable Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableDeclaration()
+ * @model
+ * @generated
+ */
+public interface BooleanVariableDeclaration extends VariableDeclaration
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(BooleanVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableDeclaration_Key()
+   * @model
+   * @generated
+   */
+  BooleanVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(BooleanVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * The literals are from the enumeration {@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see #setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableDeclaration_Value()
+   * @model
+   * @generated
+   */
+  de.fhmuenster.masterthesis.testgeneratorDSL.Boolean getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value);
+
+} // BooleanVariableDeclaration
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -71,3 +146,4 @@ public interface BooleanVariableDeclaration extends VariableDeclaration
   void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value);
 
 } // BooleanVariableDeclaration
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableEquals.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableEquals.java
index 14a4145eb1ae217dcd656c192bf564a57cc1c21f..3945519508c019cf637faff69a18e6bf73baa6ac 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableEquals.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableEquals.java
@@ -1,3 +1,78 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Boolean Variable Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableEquals()
+ * @model
+ * @generated
+ */
+public interface BooleanVariableEquals extends VariableEquals
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(BooleanVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableEquals_Key()
+   * @model
+   * @generated
+   */
+  BooleanVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(BooleanVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * The literals are from the enumeration {@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see #setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableEquals_Value()
+   * @model
+   * @generated
+   */
+  de.fhmuenster.masterthesis.testgeneratorDSL.Boolean getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value);
+
+} // BooleanVariableEquals
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -71,3 +146,4 @@ public interface BooleanVariableEquals extends VariableEquals
   void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value);
 
 } // BooleanVariableEquals
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableNotEquals.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableNotEquals.java
index 625bd45750b1d1729676a4287ceb371518f4f1a4..9bc35f64114cec8c2aed9140d77194fb93cd887b 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableNotEquals.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BooleanVariableNotEquals.java
@@ -1,3 +1,78 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Boolean Variable Not Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableNotEquals()
+ * @model
+ * @generated
+ */
+public interface BooleanVariableNotEquals extends VariableNotEquals
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(BooleanVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableNotEquals_Key()
+   * @model
+   * @generated
+   */
+  BooleanVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(BooleanVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * The literals are from the enumeration {@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see #setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBooleanVariableNotEquals_Value()
+   * @model
+   * @generated
+   */
+  de.fhmuenster.masterthesis.testgeneratorDSL.Boolean getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value);
+
+} // BooleanVariableNotEquals
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -71,3 +146,4 @@ public interface BooleanVariableNotEquals extends VariableNotEquals
   void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value);
 
 } // BooleanVariableNotEquals
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BusinessRuleTaskFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BusinessRuleTaskFlowElement.java
index 0d05b7adf7b9e85a2661c4ca470087b4ca1b9ab2..6e8a996a4f29f533c350b058875dbb67dab261c0 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BusinessRuleTaskFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/BusinessRuleTaskFlowElement.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Business Rule Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getBusinessRuleTaskFlowElement()
+ * @model
+ * @generated
+ */
+public interface BusinessRuleTaskFlowElement extends FlowElement
+{
+} // BusinessRuleTaskFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -45,3 +66,4 @@ public interface BusinessRuleTaskFlowElement extends FlowElement
   void setResultVariable(String value);
 
 } // BusinessRuleTaskFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Compare.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Compare.java
index ec025f9aa396d19455cddaec0f92825af32a9d60..24f866704d548d59b71f62dc51aabde38e012575 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Compare.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Compare.java
@@ -1,3 +1,25 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compare</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getCompare()
+ * @model
+ * @generated
+ */
+public interface Compare extends EObject
+{
+} // Compare
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -18,3 +40,4 @@ import org.eclipse.emf.ecore.EObject;
 public interface Compare extends EObject
 {
 } // Compare
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Declaration.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Declaration.java
index 385ceea203825349857dcd5e7ab2b1228890e308..6c98a1b88542d2308f2d13c5e361de9d76830f8e 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Declaration.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Declaration.java
@@ -1,3 +1,53 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Declaration#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDeclaration()
+ * @model
+ * @generated
+ */
+public interface Declaration extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Name</em>' attribute.
+   * @see #setName(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDeclaration_Name()
+   * @model
+   * @generated
+   */
+  String getName();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Declaration#getName <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Name</em>' attribute.
+   * @see #getName()
+   * @generated
+   */
+  void setName(String value);
+
+} // Declaration
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -46,3 +96,4 @@ public interface Declaration extends EObject
   void setName(String value);
 
 } // Declaration
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateMock.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateMock.java
index db0786d606aaedf71dc6e2636ff970a2ce2af7f1..d9abe9d44ca46ff3cff9c5ec45ece776ccd0d8c9 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateMock.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateMock.java
@@ -1,3 +1,89 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Delegate Mock</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getServiceTaskReference <em>Service Task Reference</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getDelegateClass <em>Delegate Class</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getManualMocks <em>Manual Mocks</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDelegateMock()
+ * @model
+ * @generated
+ */
+public interface DelegateMock extends Mock
+{
+  /**
+   * Returns the value of the '<em><b>Service Task Reference</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Service Task Reference</em>' containment reference.
+   * @see #setServiceTaskReference(DelegateServiceTaskReference)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDelegateMock_ServiceTaskReference()
+   * @model containment="true"
+   * @generated
+   */
+  DelegateServiceTaskReference getServiceTaskReference();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getServiceTaskReference <em>Service Task Reference</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Service Task Reference</em>' containment reference.
+   * @see #getServiceTaskReference()
+   * @generated
+   */
+  void setServiceTaskReference(DelegateServiceTaskReference value);
+
+  /**
+   * Returns the value of the '<em><b>Delegate Class</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Delegate Class</em>' attribute.
+   * @see #setDelegateClass(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDelegateMock_DelegateClass()
+   * @model
+   * @generated
+   */
+  String getDelegateClass();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getDelegateClass <em>Delegate Class</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Delegate Class</em>' attribute.
+   * @see #getDelegateClass()
+   * @generated
+   */
+  void setDelegateClass(String value);
+
+  /**
+   * Returns the value of the '<em><b>Manual Mocks</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Manual Mocks</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDelegateMock_ManualMocks()
+   * @model containment="true"
+   * @generated
+   */
+  EList<ManualMock> getManualMocks();
+
+} // DelegateMock
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -82,3 +168,4 @@ public interface DelegateMock extends Mock
   EList<ManualMock> getManualMocks();
 
 } // DelegateMock
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateServiceTaskFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateServiceTaskFlowElement.java
index 14160f4622aa15c3f3936aa46ca63ceb769459dc..15dc1de7667337951f17f125783e10118236e725 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateServiceTaskFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateServiceTaskFlowElement.java
@@ -1,3 +1,52 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Delegate Service Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement#getDelegate <em>Delegate</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDelegateServiceTaskFlowElement()
+ * @model
+ * @generated
+ */
+public interface DelegateServiceTaskFlowElement extends ServiceTaskFlowElement
+{
+  /**
+   * Returns the value of the '<em><b>Delegate</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Delegate</em>' attribute.
+   * @see #setDelegate(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDelegateServiceTaskFlowElement_Delegate()
+   * @model
+   * @generated
+   */
+  String getDelegate();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement#getDelegate <em>Delegate</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Delegate</em>' attribute.
+   * @see #getDelegate()
+   * @generated
+   */
+  void setDelegate(String value);
+
+} // DelegateServiceTaskFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -45,3 +94,4 @@ public interface DelegateServiceTaskFlowElement extends ServiceTaskFlowElement
   void setDelegate(String value);
 
 } // DelegateServiceTaskFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateServiceTaskReference.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateServiceTaskReference.java
index 41eee234fad384746a2bbc14e52624b9803e856a..ec100f9a2f628eea84a5c987f7c913e2c4a36f67 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateServiceTaskReference.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/DelegateServiceTaskReference.java
@@ -1,3 +1,53 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Delegate Service Task Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDelegateServiceTaskReference()
+ * @model
+ * @generated
+ */
+public interface DelegateServiceTaskReference extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(DelegateServiceTaskFlowElement)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getDelegateServiceTaskReference_Ref()
+   * @model
+   * @generated
+   */
+  DelegateServiceTaskFlowElement getRef();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(DelegateServiceTaskFlowElement value);
+
+} // DelegateServiceTaskReference
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -46,3 +96,4 @@ public interface DelegateServiceTaskReference extends EObject
   void setRef(DelegateServiceTaskFlowElement value);
 
 } // DelegateServiceTaskReference
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndCheck.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndCheck.java
index 4ec42f6667cce15da521285f5a97f2ba36d90913..09b6f01f545bae6ccecd9190ec33573961f8f4f2 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndCheck.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndCheck.java
@@ -1,3 +1,25 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>End Check</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getEndCheck()
+ * @model
+ * @generated
+ */
+public interface EndCheck extends EObject
+{
+} // EndCheck
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -18,3 +40,4 @@ import org.eclipse.emf.ecore.EObject;
 public interface EndCheck extends EObject
 {
 } // EndCheck
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndChecks.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndChecks.java
index dd0bb7a071b86e5b48165c74ae4b248161581a4c..eae5c72c2e4387af8a64e1f17a640266e568bab0 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndChecks.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndChecks.java
@@ -1,3 +1,45 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>End Checks</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks#getEndChecks <em>End Checks</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getEndChecks()
+ * @model
+ * @generated
+ */
+public interface EndChecks extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>End Checks</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>End Checks</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getEndChecks_EndChecks()
+   * @model containment="true"
+   * @generated
+   */
+  EList<EndCheck> getEndChecks();
+
+} // EndChecks
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -38,3 +80,4 @@ public interface EndChecks extends EObject
   EList<EndCheck> getEndChecks();
 
 } // EndChecks
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndFlowElement.java
index e64f06432160452fc5ffed386a54457ec6613c0e..f4a779feb685600fbdf80a020ac776424ca4f3fb 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/EndFlowElement.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>End Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getEndFlowElement()
+ * @model
+ * @generated
+ */
+public interface EndFlowElement extends FlowElement
+{
+} // EndFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface EndFlowElement extends FlowElement
 {
 } // EndFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalServiceMock.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalServiceMock.java
index 04892c1d6368e239fadb1eab08086d076bcf76a3..373a6b9e1a31a44e7d92c4503a21c38243f148e6 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalServiceMock.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalServiceMock.java
@@ -1,3 +1,66 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>External Service Mock</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock#getExternalTopic <em>External Topic</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock#getMockingRules <em>Mocking Rules</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalServiceMock()
+ * @model
+ * @generated
+ */
+public interface ExternalServiceMock extends Mock
+{
+  /**
+   * Returns the value of the '<em><b>External Topic</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>External Topic</em>' containment reference.
+   * @see #setExternalTopic(ExternalTopicReference)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalServiceMock_ExternalTopic()
+   * @model containment="true"
+   * @generated
+   */
+  ExternalTopicReference getExternalTopic();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock#getExternalTopic <em>External Topic</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>External Topic</em>' containment reference.
+   * @see #getExternalTopic()
+   * @generated
+   */
+  void setExternalTopic(ExternalTopicReference value);
+
+  /**
+   * Returns the value of the '<em><b>Mocking Rules</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Mocking Rules</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalServiceMock_MockingRules()
+   * @model containment="true"
+   * @generated
+   */
+  EList<MockingRule> getMockingRules();
+
+} // ExternalServiceMock
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -59,3 +122,4 @@ public interface ExternalServiceMock extends Mock
   EList<MockingRule> getMockingRules();
 
 } // ExternalServiceMock
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalServiceTaskFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalServiceTaskFlowElement.java
index e61b79795ad2a20134e8a25f9b1225029bb29f56..bc046f7f0d75d51be1a7845f70ed8c111b872a34 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalServiceTaskFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalServiceTaskFlowElement.java
@@ -1,3 +1,66 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>External Service Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement#getExternalTopic <em>External Topic</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement#getHardcodedInputs <em>Hardcoded Inputs</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalServiceTaskFlowElement()
+ * @model
+ * @generated
+ */
+public interface ExternalServiceTaskFlowElement extends ServiceTaskFlowElement
+{
+  /**
+   * Returns the value of the '<em><b>External Topic</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>External Topic</em>' containment reference.
+   * @see #setExternalTopic(ExternalTopicReference)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalServiceTaskFlowElement_ExternalTopic()
+   * @model containment="true"
+   * @generated
+   */
+  ExternalTopicReference getExternalTopic();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement#getExternalTopic <em>External Topic</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>External Topic</em>' containment reference.
+   * @see #getExternalTopic()
+   * @generated
+   */
+  void setExternalTopic(ExternalTopicReference value);
+
+  /**
+   * Returns the value of the '<em><b>Hardcoded Inputs</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Hardcoded Inputs</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalServiceTaskFlowElement_HardcodedInputs()
+   * @model containment="true"
+   * @generated
+   */
+  EList<VariableDeclaration> getHardcodedInputs();
+
+} // ExternalServiceTaskFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -59,3 +122,4 @@ public interface ExternalServiceTaskFlowElement extends ServiceTaskFlowElement
   EList<VariableDeclaration> getHardcodedInputs();
 
 } // ExternalServiceTaskFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalTopic.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalTopic.java
index 022412c68ed2d8cd353feb9077a542f2222a5ba3..d539907c79264a01eb0498845b609db96d555b97 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalTopic.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalTopic.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>External Topic</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalTopic()
+ * @model
+ * @generated
+ */
+public interface ExternalTopic extends Declaration
+{
+} // ExternalTopic
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface ExternalTopic extends Declaration
 {
 } // ExternalTopic
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalTopicReference.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalTopicReference.java
index a6a21d4a0a74ce9eb7f62fe88dbfe0fe22e87b15..e2b424d2eafc5f70ebdae3d22f24213a0b44f647 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalTopicReference.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ExternalTopicReference.java
@@ -1,3 +1,53 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>External Topic Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalTopicReference()
+ * @model
+ * @generated
+ */
+public interface ExternalTopicReference extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(ExternalTopic)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getExternalTopicReference_Ref()
+   * @model
+   * @generated
+   */
+  ExternalTopic getRef();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(ExternalTopic value);
+
+} // ExternalTopicReference
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -46,3 +96,4 @@ public interface ExternalTopicReference extends EObject
   void setRef(ExternalTopic value);
 
 } // ExternalTopicReference
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Flow.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Flow.java
index 889c1dc4c662133dadf548b0bf83643bc34ffd79..310488c2cb9f25068be8278ecdbfaaf3c9e07d48 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Flow.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Flow.java
@@ -1,3 +1,79 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getBpmnReference <em>Bpmn Reference</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getInclElements <em>Incl Elements</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getExclElements <em>Excl Elements</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlow()
+ * @model
+ * @generated
+ */
+public interface Flow extends Declaration
+{
+  /**
+   * Returns the value of the '<em><b>Bpmn Reference</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Bpmn Reference</em>' containment reference.
+   * @see #setBpmnReference(BPMNReference)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlow_BpmnReference()
+   * @model containment="true"
+   * @generated
+   */
+  BPMNReference getBpmnReference();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getBpmnReference <em>Bpmn Reference</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Bpmn Reference</em>' containment reference.
+   * @see #getBpmnReference()
+   * @generated
+   */
+  void setBpmnReference(BPMNReference value);
+
+  /**
+   * Returns the value of the '<em><b>Incl Elements</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Incl Elements</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlow_InclElements()
+   * @model containment="true"
+   * @generated
+   */
+  EList<FlowElementReference> getInclElements();
+
+  /**
+   * Returns the value of the '<em><b>Excl Elements</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Excl Elements</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlow_ExclElements()
+   * @model containment="true"
+   * @generated
+   */
+  EList<FlowElementReference> getExclElements();
+
+} // Flow
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -72,3 +148,4 @@ public interface Flow extends Declaration
   EList<FlowElementReference> getExclElements();
 
 } // Flow
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowElement.java
index 2b25d7ea5d9b91536c61876d65223d824a093e64..fe8a4eb6f26187b6540f20d3a6859700b904bec0 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowElement.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlowElement()
+ * @model
+ * @generated
+ */
+public interface FlowElement extends Declaration
+{
+} // FlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface FlowElement extends Declaration
 {
 } // FlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowElementReference.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowElementReference.java
index 8ce666b378661cd8b17d03e59e37ad8a55fe07dd..b4eac48dea128fb21fb2253e6580dc1437c041a0 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowElementReference.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowElementReference.java
@@ -1,3 +1,53 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow Element Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlowElementReference()
+ * @model
+ * @generated
+ */
+public interface FlowElementReference extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(FlowElement)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlowElementReference_Ref()
+   * @model
+   * @generated
+   */
+  FlowElement getRef();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(FlowElement value);
+
+} // FlowElementReference
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -46,3 +96,4 @@ public interface FlowElementReference extends EObject
   void setRef(FlowElement value);
 
 } // FlowElementReference
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowReference.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowReference.java
index 3cb68449f35d6004b814b139505419b7e82728af..25945b04b30269ae2421e6c364e594be4d33d964 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowReference.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/FlowReference.java
@@ -1,3 +1,53 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Flow Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlowReference()
+ * @model
+ * @generated
+ */
+public interface FlowReference extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(Flow)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getFlowReference_Ref()
+   * @model
+   * @generated
+   */
+  Flow getRef();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(Flow value);
+
+} // FlowReference
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -46,3 +96,4 @@ public interface FlowReference extends EObject
   void setRef(Flow value);
 
 } // FlowReference
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/GatewayFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/GatewayFlowElement.java
index 0cb202795ee5b17088ed2db84d27b16a66b80084..ee7d011ac1540bdbd41eeb1ecb4137a28377bfc2 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/GatewayFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/GatewayFlowElement.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gateway Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getGatewayFlowElement()
+ * @model
+ * @generated
+ */
+public interface GatewayFlowElement extends FlowElement
+{
+} // GatewayFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface GatewayFlowElement extends FlowElement
 {
 } // GatewayFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntCompare.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntCompare.java
index fb9d8fb7384e96728d96f7d0328b99af080fd4a0..9de83312032f1b260e96e095aa1f2827c95b27b5 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntCompare.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntCompare.java
@@ -1,3 +1,101 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Int Compare</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getCompareSymbol <em>Compare Symbol</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntCompare()
+ * @model
+ * @generated
+ */
+public interface IntCompare extends Compare
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(IntVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntCompare_Key()
+   * @model
+   * @generated
+   */
+  IntVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(IntVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Compare Symbol</b></em>' attribute.
+   * The literals are from the enumeration {@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Compare Symbol</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol
+   * @see #setCompareSymbol(IntCompareSymbol)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntCompare_CompareSymbol()
+   * @model
+   * @generated
+   */
+  IntCompareSymbol getCompareSymbol();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getCompareSymbol <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Compare Symbol</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol
+   * @see #getCompareSymbol()
+   * @generated
+   */
+  void setCompareSymbol(IntCompareSymbol value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see #setValue(int)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntCompare_Value()
+   * @model
+   * @generated
+   */
+  int getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(int value);
+
+} // IntCompare
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -94,3 +192,4 @@ public interface IntCompare extends Compare
   void setValue(int value);
 
 } // IntCompare
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntCompareSymbol.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntCompareSymbol.java
index fc1d3621036e4246caa908697bd8d13c81d291bb..5aa8bdc85a5664177f6e806436c1315f50dfc544 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntCompareSymbol.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntCompareSymbol.java
@@ -1,3 +1,322 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Int Compare Symbol</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntCompareSymbol()
+ * @model
+ * @generated
+ */
+public enum IntCompareSymbol implements Enumerator
+{
+  /**
+   * The '<em><b>EQUALS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #EQUALS_VALUE
+   * @generated
+   * @ordered
+   */
+  EQUALS(0, "EQUALS", "=="),
+
+  /**
+   * The '<em><b>NOT EQUALS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NOT_EQUALS_VALUE
+   * @generated
+   * @ordered
+   */
+  NOT_EQUALS(1, "NOT_EQUALS", "!="),
+
+  /**
+   * The '<em><b>LOWER</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #LOWER_VALUE
+   * @generated
+   * @ordered
+   */
+  LOWER(2, "LOWER", "<"),
+
+  /**
+   * The '<em><b>GREATER</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #GREATER_VALUE
+   * @generated
+   * @ordered
+   */
+  GREATER(3, "GREATER", ">"),
+
+  /**
+   * The '<em><b>LOWER EQUALS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #LOWER_EQUALS_VALUE
+   * @generated
+   * @ordered
+   */
+  LOWER_EQUALS(4, "LOWER_EQUALS", "<="),
+
+  /**
+   * The '<em><b>GREATER EQUALS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #GREATER_EQUALS_VALUE
+   * @generated
+   * @ordered
+   */
+  GREATER_EQUALS(5, "GREATER_EQUALS", ">=");
+
+  /**
+   * The '<em><b>EQUALS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #EQUALS
+   * @model literal="=="
+   * @generated
+   * @ordered
+   */
+  public static final int EQUALS_VALUE = 0;
+
+  /**
+   * The '<em><b>NOT EQUALS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NOT_EQUALS
+   * @model literal="!="
+   * @generated
+   * @ordered
+   */
+  public static final int NOT_EQUALS_VALUE = 1;
+
+  /**
+   * The '<em><b>LOWER</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #LOWER
+   * @model literal="&lt;"
+   * @generated
+   * @ordered
+   */
+  public static final int LOWER_VALUE = 2;
+
+  /**
+   * The '<em><b>GREATER</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #GREATER
+   * @model literal="&gt;"
+   * @generated
+   * @ordered
+   */
+  public static final int GREATER_VALUE = 3;
+
+  /**
+   * The '<em><b>LOWER EQUALS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #LOWER_EQUALS
+   * @model literal="&lt;="
+   * @generated
+   * @ordered
+   */
+  public static final int LOWER_EQUALS_VALUE = 4;
+
+  /**
+   * The '<em><b>GREATER EQUALS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #GREATER_EQUALS
+   * @model literal="&gt;="
+   * @generated
+   * @ordered
+   */
+  public static final int GREATER_EQUALS_VALUE = 5;
+
+  /**
+   * An array of all the '<em><b>Int Compare Symbol</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final IntCompareSymbol[] VALUES_ARRAY =
+    new IntCompareSymbol[]
+    {
+      EQUALS,
+      NOT_EQUALS,
+      LOWER,
+      GREATER,
+      LOWER_EQUALS,
+      GREATER_EQUALS,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>Int Compare Symbol</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<IntCompareSymbol> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>Int Compare Symbol</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static IntCompareSymbol get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      IntCompareSymbol result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Int Compare Symbol</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static IntCompareSymbol getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      IntCompareSymbol result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>Int Compare Symbol</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static IntCompareSymbol get(int value)
+  {
+    switch (value)
+    {
+      case EQUALS_VALUE: return EQUALS;
+      case NOT_EQUALS_VALUE: return NOT_EQUALS;
+      case LOWER_VALUE: return LOWER;
+      case GREATER_VALUE: return GREATER;
+      case LOWER_EQUALS_VALUE: return LOWER_EQUALS;
+      case GREATER_EQUALS_VALUE: return GREATER_EQUALS;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private IntCompareSymbol(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //IntCompareSymbol
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -315,3 +634,4 @@ public enum IntCompareSymbol implements Enumerator
   }
   
 } //IntCompareSymbol
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariable.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariable.java
index 820f0cce60dac86b615af8a417ad875f14b8ac73..388e6e726959db79b4844d5a501e06ab7eba34ab 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariable.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariable.java
@@ -1,3 +1,43 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Int Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable#getProposals <em>Proposals</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariable()
+ * @model
+ * @generated
+ */
+public interface IntVariable extends Variable
+{
+  /**
+   * Returns the value of the '<em><b>Proposals</b></em>' attribute list.
+   * The list contents are of type {@link java.lang.Integer}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Proposals</em>' attribute list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariable_Proposals()
+   * @model unique="false"
+   * @generated
+   */
+  EList<Integer> getProposals();
+
+} // IntVariable
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -36,3 +76,4 @@ public interface IntVariable extends Variable
   EList<Integer> getProposals();
 
 } // IntVariable
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableDeclaration.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableDeclaration.java
index 5d9c4bb2fc113635f77bb6b3574d699d091f9d41..e28cbc4eb6f535bec9b10e318b0fe6e05284d8c2 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableDeclaration.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableDeclaration.java
@@ -1,3 +1,75 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Int Variable Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableDeclaration()
+ * @model
+ * @generated
+ */
+public interface IntVariableDeclaration extends VariableDeclaration
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(IntVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableDeclaration_Key()
+   * @model
+   * @generated
+   */
+  IntVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(IntVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see #setValue(int)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableDeclaration_Value()
+   * @model
+   * @generated
+   */
+  int getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(int value);
+
+} // IntVariableDeclaration
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -68,3 +140,4 @@ public interface IntVariableDeclaration extends VariableDeclaration
   void setValue(int value);
 
 } // IntVariableDeclaration
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableEquals.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableEquals.java
index a11eba8da89e664fad4445662ce5103638d013dd..51716a73273231ce8bc02ba3821047d8216c8509 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableEquals.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableEquals.java
@@ -1,3 +1,75 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Int Variable Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableEquals()
+ * @model
+ * @generated
+ */
+public interface IntVariableEquals extends VariableEquals
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(IntVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableEquals_Key()
+   * @model
+   * @generated
+   */
+  IntVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(IntVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see #setValue(int)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableEquals_Value()
+   * @model
+   * @generated
+   */
+  int getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(int value);
+
+} // IntVariableEquals
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -68,3 +140,4 @@ public interface IntVariableEquals extends VariableEquals
   void setValue(int value);
 
 } // IntVariableEquals
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableNotEquals.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableNotEquals.java
index 2943b049a4a6c7adb4a865d9cf8e39450f799ce2..8fa7c2b6e5c2698f0df5be231390410d07c9c194 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableNotEquals.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/IntVariableNotEquals.java
@@ -1,3 +1,75 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Int Variable Not Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableNotEquals()
+ * @model
+ * @generated
+ */
+public interface IntVariableNotEquals extends VariableNotEquals
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(IntVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableNotEquals_Key()
+   * @model
+   * @generated
+   */
+  IntVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(IntVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see #setValue(int)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getIntVariableNotEquals_Value()
+   * @model
+   * @generated
+   */
+  int getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(int value);
+
+} // IntVariableNotEquals
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -68,3 +140,4 @@ public interface IntVariableNotEquals extends VariableNotEquals
   void setValue(int value);
 
 } // IntVariableNotEquals
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Loop.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Loop.java
index ade8c098507141f1d2a582d80faf9f6a4c675422..ecb73c30b1be2903bb6ba9c50b927299957620dc 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Loop.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Loop.java
@@ -1,3 +1,135 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loop</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getStart <em>Start</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getFollower <em>Follower</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getEnd <em>End</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getComplexity <em>Complexity</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getFrequencies <em>Frequencies</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getLoop()
+ * @model
+ * @generated
+ */
+public interface Loop extends Declaration
+{
+  /**
+   * Returns the value of the '<em><b>Start</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Start</em>' attribute.
+   * @see #setStart(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getLoop_Start()
+   * @model
+   * @generated
+   */
+  String getStart();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getStart <em>Start</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Start</em>' attribute.
+   * @see #getStart()
+   * @generated
+   */
+  void setStart(String value);
+
+  /**
+   * Returns the value of the '<em><b>Follower</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Follower</em>' attribute.
+   * @see #setFollower(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getLoop_Follower()
+   * @model
+   * @generated
+   */
+  String getFollower();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getFollower <em>Follower</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Follower</em>' attribute.
+   * @see #getFollower()
+   * @generated
+   */
+  void setFollower(String value);
+
+  /**
+   * Returns the value of the '<em><b>End</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>End</em>' attribute.
+   * @see #setEnd(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getLoop_End()
+   * @model
+   * @generated
+   */
+  String getEnd();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getEnd <em>End</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>End</em>' attribute.
+   * @see #getEnd()
+   * @generated
+   */
+  void setEnd(String value);
+
+  /**
+   * Returns the value of the '<em><b>Complexity</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Complexity</em>' attribute.
+   * @see #setComplexity(int)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getLoop_Complexity()
+   * @model
+   * @generated
+   */
+  int getComplexity();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getComplexity <em>Complexity</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Complexity</em>' attribute.
+   * @see #getComplexity()
+   * @generated
+   */
+  void setComplexity(int value);
+
+  /**
+   * Returns the value of the '<em><b>Frequencies</b></em>' attribute list.
+   * The list contents are of type {@link java.lang.Integer}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Frequencies</em>' attribute list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getLoop_Frequencies()
+   * @model unique="false"
+   * @generated
+   */
+  EList<Integer> getFrequencies();
+
+} // Loop
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -128,3 +260,4 @@ public interface Loop extends Declaration
   EList<Integer> getFrequencies();
 
 } // Loop
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ManualMock.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ManualMock.java
index 58856a1a824d6b6f91a68959d5344075efd5fb41..923555fbb137cf514bb0ed64b83bd078a25e77d9 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ManualMock.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ManualMock.java
@@ -1,3 +1,76 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Manual Mock</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock#getServiceName <em>Service Name</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock#getSetter <em>Setter</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getManualMock()
+ * @model
+ * @generated
+ */
+public interface ManualMock extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Service Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Service Name</em>' attribute.
+   * @see #setServiceName(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getManualMock_ServiceName()
+   * @model
+   * @generated
+   */
+  String getServiceName();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock#getServiceName <em>Service Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Service Name</em>' attribute.
+   * @see #getServiceName()
+   * @generated
+   */
+  void setServiceName(String value);
+
+  /**
+   * Returns the value of the '<em><b>Setter</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Setter</em>' attribute.
+   * @see #setSetter(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getManualMock_Setter()
+   * @model
+   * @generated
+   */
+  String getSetter();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock#getSetter <em>Setter</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Setter</em>' attribute.
+   * @see #getSetter()
+   * @generated
+   */
+  void setSetter(String value);
+
+} // ManualMock
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -69,3 +142,4 @@ public interface ManualMock extends EObject
   void setSetter(String value);
 
 } // ManualMock
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ManualTaskFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ManualTaskFlowElement.java
index 0a1e112956504e6fb57adc558d2cd50214b90f20..2e6f68ecc8211de46517a6c62fdb3eea5b62f56a 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ManualTaskFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ManualTaskFlowElement.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Manual Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getManualTaskFlowElement()
+ * @model
+ * @generated
+ */
+public interface ManualTaskFlowElement extends FlowElement
+{
+} // ManualTaskFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface ManualTaskFlowElement extends FlowElement
 {
 } // ManualTaskFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Mock.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Mock.java
index a49415cbb9c3cca8fea8554f48708cf3ddd9d25d..c925ad2d756a4a7b7b7648917a698078334b3217 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Mock.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Mock.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mock</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getMock()
+ * @model
+ * @generated
+ */
+public interface Mock extends Declaration
+{
+} // Mock
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface Mock extends Declaration
 {
 } // Mock
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/MockReference.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/MockReference.java
index 1c61fc749e66990f6c496bc1300194ea8bba057d..74c723716ae698876aab52b90d7371d0ae734825 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/MockReference.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/MockReference.java
@@ -1,3 +1,53 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mock Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockReference#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getMockReference()
+ * @model
+ * @generated
+ */
+public interface MockReference extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(Mock)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getMockReference_Ref()
+   * @model
+   * @generated
+   */
+  Mock getRef();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockReference#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(Mock value);
+
+} // MockReference
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -46,3 +96,4 @@ public interface MockReference extends EObject
   void setRef(Mock value);
 
 } // MockReference
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/MockingRule.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/MockingRule.java
index 1e54a51360d0efdaaf4d1e6c5f3e117705eb0afd..9a8c2c9cd67a82e08186383546b19256e5b9b2f9 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/MockingRule.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/MockingRule.java
@@ -1,3 +1,58 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mocking Rule</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule#getComparisons <em>Comparisons</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule#getVariables <em>Variables</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getMockingRule()
+ * @model
+ * @generated
+ */
+public interface MockingRule extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Comparisons</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.Compare}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Comparisons</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getMockingRule_Comparisons()
+   * @model containment="true"
+   * @generated
+   */
+  EList<Compare> getComparisons();
+
+  /**
+   * Returns the value of the '<em><b>Variables</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Variables</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getMockingRule_Variables()
+   * @model containment="true"
+   * @generated
+   */
+  EList<VariableDeclaration> getVariables();
+
+} // MockingRule
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -51,3 +106,4 @@ public interface MockingRule extends EObject
   EList<VariableDeclaration> getVariables();
 
 } // MockingRule
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Model.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Model.java
index 13ada5c269401911d90937ecf47807315521cd5d..5c62d7e0024e1daa721ff83ecb9fda9f4bdb5895 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Model.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Model.java
@@ -1,3 +1,45 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Model#getDeclarations <em>Declarations</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Declarations</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.Declaration}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Declarations</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getModel_Declarations()
+   * @model containment="true"
+   * @generated
+   */
+  EList<Declaration> getDeclarations();
+
+} // Model
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -38,3 +80,4 @@ public interface Model extends EObject
   EList<Declaration> getDeclarations();
 
 } // Model
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ScriptTaskFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ScriptTaskFlowElement.java
index 358560c875ce434969aad5601b7005538aa70688..9dac37e9d641a5be446ea76c549339170b67dd04 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ScriptTaskFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ScriptTaskFlowElement.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Script Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getScriptTaskFlowElement()
+ * @model
+ * @generated
+ */
+public interface ScriptTaskFlowElement extends FlowElement
+{
+} // ScriptTaskFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface ScriptTaskFlowElement extends FlowElement
 {
 } // ScriptTaskFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/SequenceFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/SequenceFlowElement.java
index f8e158290e66120e680ce31539d70868645fe929..1de84fe01b29a844b5309b609f647694ef534be8 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/SequenceFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/SequenceFlowElement.java
@@ -1,3 +1,52 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequence Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement#getExpression <em>Expression</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getSequenceFlowElement()
+ * @model
+ * @generated
+ */
+public interface SequenceFlowElement extends FlowElement
+{
+  /**
+   * Returns the value of the '<em><b>Expression</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Expression</em>' attribute.
+   * @see #setExpression(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getSequenceFlowElement_Expression()
+   * @model
+   * @generated
+   */
+  String getExpression();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement#getExpression <em>Expression</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Expression</em>' attribute.
+   * @see #getExpression()
+   * @generated
+   */
+  void setExpression(String value);
+
+} // SequenceFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -45,3 +94,4 @@ public interface SequenceFlowElement extends FlowElement
   void setExpression(String value);
 
 } // SequenceFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ServiceTaskFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ServiceTaskFlowElement.java
index bee42bdeb0e4000587dd1a0b06fbfe20e35f8218..378f727c45f62e72edf4b216c98b11e95e462680 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ServiceTaskFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/ServiceTaskFlowElement.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Service Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getServiceTaskFlowElement()
+ * @model
+ * @generated
+ */
+public interface ServiceTaskFlowElement extends FlowElement
+{
+} // ServiceTaskFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface ServiceTaskFlowElement extends FlowElement
 {
 } // ServiceTaskFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StartFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StartFlowElement.java
index af325939acb6e0aadb7010eabdc14ade55dec12f..eddf5cc44d869b8d17e53b6ed4f90e404e0041ce 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StartFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StartFlowElement.java
@@ -1,3 +1,43 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Start Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement#getInputVariables <em>Input Variables</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStartFlowElement()
+ * @model
+ * @generated
+ */
+public interface StartFlowElement extends FlowElement
+{
+  /**
+   * Returns the value of the '<em><b>Input Variables</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Input Variables</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStartFlowElement_InputVariables()
+   * @model containment="true"
+   * @generated
+   */
+  EList<VariableReference> getInputVariables();
+
+} // StartFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -36,3 +76,4 @@ public interface StartFlowElement extends FlowElement
   EList<VariableReference> getInputVariables();
 
 } // StartFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringCompare.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringCompare.java
index 735b0f3e83b1de73adc54fdd014843fe4bb75416..74ecd87895f98deddb1ed4c449e38198dcee9883 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringCompare.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringCompare.java
@@ -1,3 +1,101 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Compare</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getCompareSymbol <em>Compare Symbol</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringCompare()
+ * @model
+ * @generated
+ */
+public interface StringCompare extends Compare
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(StringVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringCompare_Key()
+   * @model
+   * @generated
+   */
+  StringVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(StringVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Compare Symbol</b></em>' attribute.
+   * The literals are from the enumeration {@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Compare Symbol</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol
+   * @see #setCompareSymbol(StringCompareSymbol)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringCompare_CompareSymbol()
+   * @model
+   * @generated
+   */
+  StringCompareSymbol getCompareSymbol();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getCompareSymbol <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Compare Symbol</em>' attribute.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol
+   * @see #getCompareSymbol()
+   * @generated
+   */
+  void setCompareSymbol(StringCompareSymbol value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see #setValue(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringCompare_Value()
+   * @model
+   * @generated
+   */
+  String getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(String value);
+
+} // StringCompare
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -94,3 +192,4 @@ public interface StringCompare extends Compare
   void setValue(String value);
 
 } // StringCompare
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringCompareSymbol.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringCompareSymbol.java
index af3870c3ce99dec8d1ac3d991c86afcefd35cb14..c0cce7469a2649dc327558730db187d371365b99 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringCompareSymbol.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringCompareSymbol.java
@@ -1,3 +1,230 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>String Compare Symbol</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringCompareSymbol()
+ * @model
+ * @generated
+ */
+public enum StringCompareSymbol implements Enumerator
+{
+  /**
+   * The '<em><b>EQUALS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #EQUALS_VALUE
+   * @generated
+   * @ordered
+   */
+  EQUALS(0, "EQUALS", "=="),
+
+  /**
+   * The '<em><b>NOT EQUALS</b></em>' literal object.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NOT_EQUALS_VALUE
+   * @generated
+   * @ordered
+   */
+  NOT_EQUALS(1, "NOT_EQUALS", "!=");
+
+  /**
+   * The '<em><b>EQUALS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #EQUALS
+   * @model literal="=="
+   * @generated
+   * @ordered
+   */
+  public static final int EQUALS_VALUE = 0;
+
+  /**
+   * The '<em><b>NOT EQUALS</b></em>' literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #NOT_EQUALS
+   * @model literal="!="
+   * @generated
+   * @ordered
+   */
+  public static final int NOT_EQUALS_VALUE = 1;
+
+  /**
+   * An array of all the '<em><b>String Compare Symbol</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static final StringCompareSymbol[] VALUES_ARRAY =
+    new StringCompareSymbol[]
+    {
+      EQUALS,
+      NOT_EQUALS,
+    };
+
+  /**
+   * A public read-only list of all the '<em><b>String Compare Symbol</b></em>' enumerators.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static final List<StringCompareSymbol> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+  /**
+   * Returns the '<em><b>String Compare Symbol</b></em>' literal with the specified literal value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param literal the literal.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static StringCompareSymbol get(String literal)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      StringCompareSymbol result = VALUES_ARRAY[i];
+      if (result.toString().equals(literal))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>String Compare Symbol</b></em>' literal with the specified name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param name the name.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static StringCompareSymbol getByName(String name)
+  {
+    for (int i = 0; i < VALUES_ARRAY.length; ++i)
+    {
+      StringCompareSymbol result = VALUES_ARRAY[i];
+      if (result.getName().equals(name))
+      {
+        return result;
+      }
+    }
+    return null;
+  }
+
+  /**
+   * Returns the '<em><b>String Compare Symbol</b></em>' literal with the specified integer value.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the integer value.
+   * @return the matching enumerator or <code>null</code>.
+   * @generated
+   */
+  public static StringCompareSymbol get(int value)
+  {
+    switch (value)
+    {
+      case EQUALS_VALUE: return EQUALS;
+      case NOT_EQUALS_VALUE: return NOT_EQUALS;
+    }
+    return null;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final int value;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String name;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private final String literal;
+
+  /**
+   * Only this class can construct instances.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private StringCompareSymbol(int value, String name, String literal)
+  {
+    this.value = value;
+    this.name = name;
+    this.literal = literal;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getLiteral()
+  {
+    return literal;
+  }
+
+  /**
+   * Returns the literal value of the enumerator, which is its string representation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    return literal;
+  }
+  
+} //StringCompareSymbol
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -223,3 +450,4 @@ public enum StringCompareSymbol implements Enumerator
   }
   
 } //StringCompareSymbol
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariable.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariable.java
index b04832538fb07132170f0f89767c7400680be23b..9e58f8824999cdbcf85fe73bb01dfe0c46d6891f 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariable.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariable.java
@@ -1,3 +1,43 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable#getProposals <em>Proposals</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariable()
+ * @model
+ * @generated
+ */
+public interface StringVariable extends Variable
+{
+  /**
+   * Returns the value of the '<em><b>Proposals</b></em>' attribute list.
+   * The list contents are of type {@link java.lang.String}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Proposals</em>' attribute list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariable_Proposals()
+   * @model unique="false"
+   * @generated
+   */
+  EList<String> getProposals();
+
+} // StringVariable
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -36,3 +76,4 @@ public interface StringVariable extends Variable
   EList<String> getProposals();
 
 } // StringVariable
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableDeclaration.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableDeclaration.java
index 3a0eba39374d163a6adb7182a28d895b5c8ceda5..241b548605972d9b2e79dad1c66d346342c4a348 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableDeclaration.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableDeclaration.java
@@ -1,3 +1,75 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Variable Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableDeclaration()
+ * @model
+ * @generated
+ */
+public interface StringVariableDeclaration extends VariableDeclaration
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(StringVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableDeclaration_Key()
+   * @model
+   * @generated
+   */
+  StringVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(StringVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see #setValue(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableDeclaration_Value()
+   * @model
+   * @generated
+   */
+  String getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(String value);
+
+} // StringVariableDeclaration
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -68,3 +140,4 @@ public interface StringVariableDeclaration extends VariableDeclaration
   void setValue(String value);
 
 } // StringVariableDeclaration
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableEquals.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableEquals.java
index db80322c8caca9445f4fef5245868ac03e350d97..da50030f7ba83c97d255a9ac5f8c2189b9b4dfcb 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableEquals.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableEquals.java
@@ -1,3 +1,75 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Variable Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableEquals()
+ * @model
+ * @generated
+ */
+public interface StringVariableEquals extends VariableEquals
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(StringVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableEquals_Key()
+   * @model
+   * @generated
+   */
+  StringVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(StringVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see #setValue(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableEquals_Value()
+   * @model
+   * @generated
+   */
+  String getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(String value);
+
+} // StringVariableEquals
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -68,3 +140,4 @@ public interface StringVariableEquals extends VariableEquals
   void setValue(String value);
 
 } // StringVariableEquals
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableNotEquals.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableNotEquals.java
index 7d573602d5ece3fb9f421256fb3f54181c01b0ca..7917eed54d6a298532ee3fbe880209be42517b45 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableNotEquals.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/StringVariableNotEquals.java
@@ -1,3 +1,75 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Variable Not Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableNotEquals()
+ * @model
+ * @generated
+ */
+public interface StringVariableNotEquals extends VariableNotEquals
+{
+  /**
+   * Returns the value of the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Key</em>' reference.
+   * @see #setKey(StringVariable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableNotEquals_Key()
+   * @model
+   * @generated
+   */
+  StringVariable getKey();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals#getKey <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Key</em>' reference.
+   * @see #getKey()
+   * @generated
+   */
+  void setKey(StringVariable value);
+
+  /**
+   * Returns the value of the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Value</em>' attribute.
+   * @see #setValue(String)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getStringVariableNotEquals_Value()
+   * @model
+   * @generated
+   */
+  String getValue();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals#getValue <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Value</em>' attribute.
+   * @see #getValue()
+   * @generated
+   */
+  void setValue(String value);
+
+} // StringVariableNotEquals
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -68,3 +140,4 @@ public interface StringVariableNotEquals extends VariableNotEquals
   void setValue(String value);
 
 } // StringVariableNotEquals
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Test.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Test.java
index 742a6b7ffd0a415e6fbdf4e8eed8df1ebd6116ea..6ab1a4f3b47c0dde2d4a02e6295e8bf891ca0859 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Test.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Test.java
@@ -1,3 +1,125 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Test</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getFlowReference <em>Flow Reference</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getPriority <em>Priority</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getDeclarations <em>Declarations</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getEndCheck <em>End Check</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getMocks <em>Mocks</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getTest()
+ * @model
+ * @generated
+ */
+public interface Test extends Declaration
+{
+  /**
+   * Returns the value of the '<em><b>Flow Reference</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Flow Reference</em>' containment reference.
+   * @see #setFlowReference(FlowReference)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getTest_FlowReference()
+   * @model containment="true"
+   * @generated
+   */
+  FlowReference getFlowReference();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getFlowReference <em>Flow Reference</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Flow Reference</em>' containment reference.
+   * @see #getFlowReference()
+   * @generated
+   */
+  void setFlowReference(FlowReference value);
+
+  /**
+   * Returns the value of the '<em><b>Priority</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Priority</em>' attribute.
+   * @see #setPriority(int)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getTest_Priority()
+   * @model
+   * @generated
+   */
+  int getPriority();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getPriority <em>Priority</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Priority</em>' attribute.
+   * @see #getPriority()
+   * @generated
+   */
+  void setPriority(int value);
+
+  /**
+   * Returns the value of the '<em><b>Declarations</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Declarations</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getTest_Declarations()
+   * @model containment="true"
+   * @generated
+   */
+  EList<VariableDeclarations> getDeclarations();
+
+  /**
+   * Returns the value of the '<em><b>End Check</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>End Check</em>' containment reference.
+   * @see #setEndCheck(EndChecks)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getTest_EndCheck()
+   * @model containment="true"
+   * @generated
+   */
+  EndChecks getEndCheck();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getEndCheck <em>End Check</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>End Check</em>' containment reference.
+   * @see #getEndCheck()
+   * @generated
+   */
+  void setEndCheck(EndChecks value);
+
+  /**
+   * Returns the value of the '<em><b>Mocks</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.MockReference}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Mocks</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getTest_Mocks()
+   * @model containment="true"
+   * @generated
+   */
+  EList<MockReference> getMocks();
+
+} // Test
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -95,3 +217,4 @@ public interface Test extends Declaration
   EList<MockReference> getMocks();
 
 } // Test
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/TestgeneratorDSLFactory.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/TestgeneratorDSLFactory.java
index 0d2af1f79d5605cac71c5b778cb017b5a2c4db0a..a424aa0580ef31184da6ecf0accfe3199a5afd4d 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/TestgeneratorDSLFactory.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/TestgeneratorDSLFactory.java
@@ -1,3 +1,526 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage
+ * @generated
+ */
+public interface TestgeneratorDSLFactory extends EFactory
+{
+  /**
+   * The singleton instance of the factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  TestgeneratorDSLFactory eINSTANCE = de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLFactoryImpl.init();
+
+  /**
+   * Returns a new object of class '<em>Model</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Model</em>'.
+   * @generated
+   */
+  Model createModel();
+
+  /**
+   * Returns a new object of class '<em>Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Declaration</em>'.
+   * @generated
+   */
+  Declaration createDeclaration();
+
+  /**
+   * Returns a new object of class '<em>BPMN Diagram</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>BPMN Diagram</em>'.
+   * @generated
+   */
+  BPMNDiagram createBPMNDiagram();
+
+  /**
+   * Returns a new object of class '<em>BPMN Reference</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>BPMN Reference</em>'.
+   * @generated
+   */
+  BPMNReference createBPMNReference();
+
+  /**
+   * Returns a new object of class '<em>Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Flow Element</em>'.
+   * @generated
+   */
+  FlowElement createFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Start Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Start Flow Element</em>'.
+   * @generated
+   */
+  StartFlowElement createStartFlowElement();
+
+  /**
+   * Returns a new object of class '<em>End Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>End Flow Element</em>'.
+   * @generated
+   */
+  EndFlowElement createEndFlowElement();
+
+  /**
+   * Returns a new object of class '<em>User Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>User Task Flow Element</em>'.
+   * @generated
+   */
+  UserTaskFlowElement createUserTaskFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Manual Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Manual Task Flow Element</em>'.
+   * @generated
+   */
+  ManualTaskFlowElement createManualTaskFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Script Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Script Task Flow Element</em>'.
+   * @generated
+   */
+  ScriptTaskFlowElement createScriptTaskFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Service Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Service Task Flow Element</em>'.
+   * @generated
+   */
+  ServiceTaskFlowElement createServiceTaskFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Delegate Service Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Delegate Service Task Flow Element</em>'.
+   * @generated
+   */
+  DelegateServiceTaskFlowElement createDelegateServiceTaskFlowElement();
+
+  /**
+   * Returns a new object of class '<em>External Service Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>External Service Task Flow Element</em>'.
+   * @generated
+   */
+  ExternalServiceTaskFlowElement createExternalServiceTaskFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Business Rule Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Business Rule Task Flow Element</em>'.
+   * @generated
+   */
+  BusinessRuleTaskFlowElement createBusinessRuleTaskFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Gateway Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Gateway Flow Element</em>'.
+   * @generated
+   */
+  GatewayFlowElement createGatewayFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Sequence Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Sequence Flow Element</em>'.
+   * @generated
+   */
+  SequenceFlowElement createSequenceFlowElement();
+
+  /**
+   * Returns a new object of class '<em>Flow Element Reference</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Flow Element Reference</em>'.
+   * @generated
+   */
+  FlowElementReference createFlowElementReference();
+
+  /**
+   * Returns a new object of class '<em>Delegate Service Task Reference</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Delegate Service Task Reference</em>'.
+   * @generated
+   */
+  DelegateServiceTaskReference createDelegateServiceTaskReference();
+
+  /**
+   * Returns a new object of class '<em>External Topic</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>External Topic</em>'.
+   * @generated
+   */
+  ExternalTopic createExternalTopic();
+
+  /**
+   * Returns a new object of class '<em>External Topic Reference</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>External Topic Reference</em>'.
+   * @generated
+   */
+  ExternalTopicReference createExternalTopicReference();
+
+  /**
+   * Returns a new object of class '<em>Variable</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Variable</em>'.
+   * @generated
+   */
+  Variable createVariable();
+
+  /**
+   * Returns a new object of class '<em>Variable Reference</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Variable Reference</em>'.
+   * @generated
+   */
+  VariableReference createVariableReference();
+
+  /**
+   * Returns a new object of class '<em>String Variable</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>String Variable</em>'.
+   * @generated
+   */
+  StringVariable createStringVariable();
+
+  /**
+   * Returns a new object of class '<em>Int Variable</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Int Variable</em>'.
+   * @generated
+   */
+  IntVariable createIntVariable();
+
+  /**
+   * Returns a new object of class '<em>Boolean Variable</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Boolean Variable</em>'.
+   * @generated
+   */
+  BooleanVariable createBooleanVariable();
+
+  /**
+   * Returns a new object of class '<em>Loop</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Loop</em>'.
+   * @generated
+   */
+  Loop createLoop();
+
+  /**
+   * Returns a new object of class '<em>Flow</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Flow</em>'.
+   * @generated
+   */
+  Flow createFlow();
+
+  /**
+   * Returns a new object of class '<em>Flow Reference</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Flow Reference</em>'.
+   * @generated
+   */
+  FlowReference createFlowReference();
+
+  /**
+   * Returns a new object of class '<em>Test</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Test</em>'.
+   * @generated
+   */
+  Test createTest();
+
+  /**
+   * Returns a new object of class '<em>Variable Declarations</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Variable Declarations</em>'.
+   * @generated
+   */
+  VariableDeclarations createVariableDeclarations();
+
+  /**
+   * Returns a new object of class '<em>End Checks</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>End Checks</em>'.
+   * @generated
+   */
+  EndChecks createEndChecks();
+
+  /**
+   * Returns a new object of class '<em>Variable Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Variable Declaration</em>'.
+   * @generated
+   */
+  VariableDeclaration createVariableDeclaration();
+
+  /**
+   * Returns a new object of class '<em>String Variable Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>String Variable Declaration</em>'.
+   * @generated
+   */
+  StringVariableDeclaration createStringVariableDeclaration();
+
+  /**
+   * Returns a new object of class '<em>Int Variable Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Int Variable Declaration</em>'.
+   * @generated
+   */
+  IntVariableDeclaration createIntVariableDeclaration();
+
+  /**
+   * Returns a new object of class '<em>Boolean Variable Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Boolean Variable Declaration</em>'.
+   * @generated
+   */
+  BooleanVariableDeclaration createBooleanVariableDeclaration();
+
+  /**
+   * Returns a new object of class '<em>End Check</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>End Check</em>'.
+   * @generated
+   */
+  EndCheck createEndCheck();
+
+  /**
+   * Returns a new object of class '<em>Variable Equals</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Variable Equals</em>'.
+   * @generated
+   */
+  VariableEquals createVariableEquals();
+
+  /**
+   * Returns a new object of class '<em>String Variable Equals</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>String Variable Equals</em>'.
+   * @generated
+   */
+  StringVariableEquals createStringVariableEquals();
+
+  /**
+   * Returns a new object of class '<em>Int Variable Equals</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Int Variable Equals</em>'.
+   * @generated
+   */
+  IntVariableEquals createIntVariableEquals();
+
+  /**
+   * Returns a new object of class '<em>Boolean Variable Equals</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Boolean Variable Equals</em>'.
+   * @generated
+   */
+  BooleanVariableEquals createBooleanVariableEquals();
+
+  /**
+   * Returns a new object of class '<em>Variable Not Equals</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Variable Not Equals</em>'.
+   * @generated
+   */
+  VariableNotEquals createVariableNotEquals();
+
+  /**
+   * Returns a new object of class '<em>String Variable Not Equals</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>String Variable Not Equals</em>'.
+   * @generated
+   */
+  StringVariableNotEquals createStringVariableNotEquals();
+
+  /**
+   * Returns a new object of class '<em>Int Variable Not Equals</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Int Variable Not Equals</em>'.
+   * @generated
+   */
+  IntVariableNotEquals createIntVariableNotEquals();
+
+  /**
+   * Returns a new object of class '<em>Boolean Variable Not Equals</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Boolean Variable Not Equals</em>'.
+   * @generated
+   */
+  BooleanVariableNotEquals createBooleanVariableNotEquals();
+
+  /**
+   * Returns a new object of class '<em>Mock</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Mock</em>'.
+   * @generated
+   */
+  Mock createMock();
+
+  /**
+   * Returns a new object of class '<em>Mock Reference</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Mock Reference</em>'.
+   * @generated
+   */
+  MockReference createMockReference();
+
+  /**
+   * Returns a new object of class '<em>External Service Mock</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>External Service Mock</em>'.
+   * @generated
+   */
+  ExternalServiceMock createExternalServiceMock();
+
+  /**
+   * Returns a new object of class '<em>Delegate Mock</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Delegate Mock</em>'.
+   * @generated
+   */
+  DelegateMock createDelegateMock();
+
+  /**
+   * Returns a new object of class '<em>Mocking Rule</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Mocking Rule</em>'.
+   * @generated
+   */
+  MockingRule createMockingRule();
+
+  /**
+   * Returns a new object of class '<em>Manual Mock</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Manual Mock</em>'.
+   * @generated
+   */
+  ManualMock createManualMock();
+
+  /**
+   * Returns a new object of class '<em>Compare</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Compare</em>'.
+   * @generated
+   */
+  Compare createCompare();
+
+  /**
+   * Returns a new object of class '<em>String Compare</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>String Compare</em>'.
+   * @generated
+   */
+  StringCompare createStringCompare();
+
+  /**
+   * Returns a new object of class '<em>Int Compare</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Int Compare</em>'.
+   * @generated
+   */
+  IntCompare createIntCompare();
+
+  /**
+   * Returns a new object of class '<em>Boolean Compare</em>'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return a new object of class '<em>Boolean Compare</em>'.
+   * @generated
+   */
+  BooleanCompare createBooleanCompare();
+
+  /**
+   * Returns the package supported by this factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the package supported by this factory.
+   * @generated
+   */
+  TestgeneratorDSLPackage getTestgeneratorDSLPackage();
+
+} //TestgeneratorDSLFactory
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -519,3 +1042,4 @@ public interface TestgeneratorDSLFactory extends EFactory
   TestgeneratorDSLPackage getTestgeneratorDSLPackage();
 
 } //TestgeneratorDSLFactory
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/TestgeneratorDSLPackage.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/TestgeneratorDSLPackage.java
index 6e10dcee1f2de83813e445c517191f5bc1a2e3b5..e34cc0003e3860c82c7801c4f607b02be5894433 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/TestgeneratorDSLPackage.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/TestgeneratorDSLPackage.java
@@ -1,3 +1,4634 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface TestgeneratorDSLPackage extends EPackage
+{
+  /**
+   * The package name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNAME = "testgeneratorDSL";
+
+  /**
+   * The package namespace URI.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNS_URI = "http://www.fhmuenster.de/masterthesis/TestgeneratorDSL";
+
+  /**
+   * The package namespace name.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  String eNS_PREFIX = "testgeneratorDSL";
+
+  /**
+   * The singleton instance of the package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  TestgeneratorDSLPackage eINSTANCE = de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl.init();
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ModelImpl <em>Model</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ModelImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getModel()
+   * @generated
+   */
+  int MODEL = 0;
+
+  /**
+   * The feature id for the '<em><b>Declarations</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MODEL__DECLARATIONS = 0;
+
+  /**
+   * The number of structural features of the '<em>Model</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MODEL_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DeclarationImpl <em>Declaration</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.DeclarationImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getDeclaration()
+   * @generated
+   */
+  int DECLARATION = 1;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DECLARATION__NAME = 0;
+
+  /**
+   * The number of structural features of the '<em>Declaration</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DECLARATION_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl <em>BPMN Diagram</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBPMNDiagram()
+   * @generated
+   */
+  int BPMN_DIAGRAM = 2;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_DIAGRAM__NAME = DECLARATION__NAME;
+
+  /**
+   * The feature id for the '<em><b>Testpackage</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_DIAGRAM__TESTPACKAGE = DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Bpmn</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_DIAGRAM__BPMN = DECLARATION_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_DIAGRAM__KEY = DECLARATION_FEATURE_COUNT + 2;
+
+  /**
+   * The feature id for the '<em><b>Dmn</b></em>' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_DIAGRAM__DMN = DECLARATION_FEATURE_COUNT + 3;
+
+  /**
+   * The feature id for the '<em><b>Embedded</b></em>' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_DIAGRAM__EMBEDDED = DECLARATION_FEATURE_COUNT + 4;
+
+  /**
+   * The number of structural features of the '<em>BPMN Diagram</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_DIAGRAM_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 5;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNReferenceImpl <em>BPMN Reference</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNReferenceImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBPMNReference()
+   * @generated
+   */
+  int BPMN_REFERENCE = 3;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_REFERENCE__REF = 0;
+
+  /**
+   * The number of structural features of the '<em>BPMN Reference</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BPMN_REFERENCE_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementImpl <em>Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getFlowElement()
+   * @generated
+   */
+  int FLOW_ELEMENT = 4;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_ELEMENT__NAME = DECLARATION__NAME;
+
+  /**
+   * The number of structural features of the '<em>Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_ELEMENT_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StartFlowElementImpl <em>Start Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StartFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStartFlowElement()
+   * @generated
+   */
+  int START_FLOW_ELEMENT = 5;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int START_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The feature id for the '<em><b>Input Variables</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int START_FLOW_ELEMENT__INPUT_VARIABLES = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>Start Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int START_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndFlowElementImpl <em>End Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getEndFlowElement()
+   * @generated
+   */
+  int END_FLOW_ELEMENT = 6;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int END_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The number of structural features of the '<em>End Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int END_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.UserTaskFlowElementImpl <em>User Task Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.UserTaskFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getUserTaskFlowElement()
+   * @generated
+   */
+  int USER_TASK_FLOW_ELEMENT = 7;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int USER_TASK_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The feature id for the '<em><b>Input Variables</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>User Task Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int USER_TASK_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualTaskFlowElementImpl <em>Manual Task Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualTaskFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getManualTaskFlowElement()
+   * @generated
+   */
+  int MANUAL_TASK_FLOW_ELEMENT = 8;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MANUAL_TASK_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The number of structural features of the '<em>Manual Task Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MANUAL_TASK_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ScriptTaskFlowElementImpl <em>Script Task Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ScriptTaskFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getScriptTaskFlowElement()
+   * @generated
+   */
+  int SCRIPT_TASK_FLOW_ELEMENT = 9;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int SCRIPT_TASK_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The number of structural features of the '<em>Script Task Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int SCRIPT_TASK_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ServiceTaskFlowElementImpl <em>Service Task Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ServiceTaskFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getServiceTaskFlowElement()
+   * @generated
+   */
+  int SERVICE_TASK_FLOW_ELEMENT = 10;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int SERVICE_TASK_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The number of structural features of the '<em>Service Task Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int SERVICE_TASK_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskFlowElementImpl <em>Delegate Service Task Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getDelegateServiceTaskFlowElement()
+   * @generated
+   */
+  int DELEGATE_SERVICE_TASK_FLOW_ELEMENT = 11;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_SERVICE_TASK_FLOW_ELEMENT__NAME = SERVICE_TASK_FLOW_ELEMENT__NAME;
+
+  /**
+   * The feature id for the '<em><b>Delegate</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE = SERVICE_TASK_FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>Delegate Service Task Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_SERVICE_TASK_FLOW_ELEMENT_FEATURE_COUNT = SERVICE_TASK_FLOW_ELEMENT_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceTaskFlowElementImpl <em>External Service Task Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceTaskFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getExternalServiceTaskFlowElement()
+   * @generated
+   */
+  int EXTERNAL_SERVICE_TASK_FLOW_ELEMENT = 12;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__NAME = SERVICE_TASK_FLOW_ELEMENT__NAME;
+
+  /**
+   * The feature id for the '<em><b>External Topic</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC = SERVICE_TASK_FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Hardcoded Inputs</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS = SERVICE_TASK_FLOW_ELEMENT_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>External Service Task Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_SERVICE_TASK_FLOW_ELEMENT_FEATURE_COUNT = SERVICE_TASK_FLOW_ELEMENT_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BusinessRuleTaskFlowElementImpl <em>Business Rule Task Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BusinessRuleTaskFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBusinessRuleTaskFlowElement()
+   * @generated
+   */
+  int BUSINESS_RULE_TASK_FLOW_ELEMENT = 13;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BUSINESS_RULE_TASK_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The number of structural features of the '<em>Business Rule Task Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BUSINESS_RULE_TASK_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.GatewayFlowElementImpl <em>Gateway Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.GatewayFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getGatewayFlowElement()
+   * @generated
+   */
+  int GATEWAY_FLOW_ELEMENT = 14;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int GATEWAY_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The number of structural features of the '<em>Gateway Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int GATEWAY_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.SequenceFlowElementImpl <em>Sequence Flow Element</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.SequenceFlowElementImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getSequenceFlowElement()
+   * @generated
+   */
+  int SEQUENCE_FLOW_ELEMENT = 15;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int SEQUENCE_FLOW_ELEMENT__NAME = FLOW_ELEMENT__NAME;
+
+  /**
+   * The feature id for the '<em><b>Expression</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int SEQUENCE_FLOW_ELEMENT__EXPRESSION = FLOW_ELEMENT_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>Sequence Flow Element</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int SEQUENCE_FLOW_ELEMENT_FEATURE_COUNT = FLOW_ELEMENT_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementReferenceImpl <em>Flow Element Reference</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementReferenceImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getFlowElementReference()
+   * @generated
+   */
+  int FLOW_ELEMENT_REFERENCE = 16;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_ELEMENT_REFERENCE__REF = 0;
+
+  /**
+   * The number of structural features of the '<em>Flow Element Reference</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_ELEMENT_REFERENCE_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskReferenceImpl <em>Delegate Service Task Reference</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskReferenceImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getDelegateServiceTaskReference()
+   * @generated
+   */
+  int DELEGATE_SERVICE_TASK_REFERENCE = 17;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_SERVICE_TASK_REFERENCE__REF = 0;
+
+  /**
+   * The number of structural features of the '<em>Delegate Service Task Reference</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_SERVICE_TASK_REFERENCE_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicImpl <em>External Topic</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getExternalTopic()
+   * @generated
+   */
+  int EXTERNAL_TOPIC = 18;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_TOPIC__NAME = DECLARATION__NAME;
+
+  /**
+   * The number of structural features of the '<em>External Topic</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_TOPIC_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicReferenceImpl <em>External Topic Reference</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicReferenceImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getExternalTopicReference()
+   * @generated
+   */
+  int EXTERNAL_TOPIC_REFERENCE = 19;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_TOPIC_REFERENCE__REF = 0;
+
+  /**
+   * The number of structural features of the '<em>External Topic Reference</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_TOPIC_REFERENCE_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableImpl <em>Variable</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariable()
+   * @generated
+   */
+  int VARIABLE = 20;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE__NAME = DECLARATION__NAME;
+
+  /**
+   * The number of structural features of the '<em>Variable</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableReferenceImpl <em>Variable Reference</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableReferenceImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableReference()
+   * @generated
+   */
+  int VARIABLE_REFERENCE = 21;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_REFERENCE__REF = 0;
+
+  /**
+   * The number of structural features of the '<em>Variable Reference</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_REFERENCE_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableImpl <em>String Variable</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringVariable()
+   * @generated
+   */
+  int STRING_VARIABLE = 22;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE__NAME = VARIABLE__NAME;
+
+  /**
+   * The feature id for the '<em><b>Proposals</b></em>' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE__PROPOSALS = VARIABLE_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>String Variable</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableImpl <em>Int Variable</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntVariable()
+   * @generated
+   */
+  int INT_VARIABLE = 23;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE__NAME = VARIABLE__NAME;
+
+  /**
+   * The feature id for the '<em><b>Proposals</b></em>' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE__PROPOSALS = VARIABLE_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>Int Variable</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableImpl <em>Boolean Variable</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanVariable()
+   * @generated
+   */
+  int BOOLEAN_VARIABLE = 24;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE__NAME = VARIABLE__NAME;
+
+  /**
+   * The feature id for the '<em><b>Proposals</b></em>' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE__PROPOSALS = VARIABLE_FEATURE_COUNT + 0;
+
+  /**
+   * The number of structural features of the '<em>Boolean Variable</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl <em>Loop</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getLoop()
+   * @generated
+   */
+  int LOOP = 25;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LOOP__NAME = DECLARATION__NAME;
+
+  /**
+   * The feature id for the '<em><b>Start</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LOOP__START = DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Follower</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LOOP__FOLLOWER = DECLARATION_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>End</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LOOP__END = DECLARATION_FEATURE_COUNT + 2;
+
+  /**
+   * The feature id for the '<em><b>Complexity</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LOOP__COMPLEXITY = DECLARATION_FEATURE_COUNT + 3;
+
+  /**
+   * The feature id for the '<em><b>Frequencies</b></em>' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LOOP__FREQUENCIES = DECLARATION_FEATURE_COUNT + 4;
+
+  /**
+   * The number of structural features of the '<em>Loop</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int LOOP_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 5;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowImpl <em>Flow</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getFlow()
+   * @generated
+   */
+  int FLOW = 26;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW__NAME = DECLARATION__NAME;
+
+  /**
+   * The feature id for the '<em><b>Bpmn Reference</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW__BPMN_REFERENCE = DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Incl Elements</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW__INCL_ELEMENTS = DECLARATION_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Excl Elements</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW__EXCL_ELEMENTS = DECLARATION_FEATURE_COUNT + 2;
+
+  /**
+   * The number of structural features of the '<em>Flow</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 3;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowReferenceImpl <em>Flow Reference</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowReferenceImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getFlowReference()
+   * @generated
+   */
+  int FLOW_REFERENCE = 27;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_REFERENCE__REF = 0;
+
+  /**
+   * The number of structural features of the '<em>Flow Reference</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int FLOW_REFERENCE_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl <em>Test</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getTest()
+   * @generated
+   */
+  int TEST = 28;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TEST__NAME = DECLARATION__NAME;
+
+  /**
+   * The feature id for the '<em><b>Flow Reference</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TEST__FLOW_REFERENCE = DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Priority</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TEST__PRIORITY = DECLARATION_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Declarations</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TEST__DECLARATIONS = DECLARATION_FEATURE_COUNT + 2;
+
+  /**
+   * The feature id for the '<em><b>End Check</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TEST__END_CHECK = DECLARATION_FEATURE_COUNT + 3;
+
+  /**
+   * The feature id for the '<em><b>Mocks</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TEST__MOCKS = DECLARATION_FEATURE_COUNT + 4;
+
+  /**
+   * The number of structural features of the '<em>Test</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int TEST_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 5;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationsImpl <em>Variable Declarations</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableDeclarations()
+   * @generated
+   */
+  int VARIABLE_DECLARATIONS = 29;
+
+  /**
+   * The feature id for the '<em><b>Task Reference</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_DECLARATIONS__TASK_REFERENCE = 0;
+
+  /**
+   * The feature id for the '<em><b>Variables</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_DECLARATIONS__VARIABLES = 1;
+
+  /**
+   * The number of structural features of the '<em>Variable Declarations</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_DECLARATIONS_FEATURE_COUNT = 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndChecksImpl <em>End Checks</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndChecksImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getEndChecks()
+   * @generated
+   */
+  int END_CHECKS = 30;
+
+  /**
+   * The feature id for the '<em><b>End Checks</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int END_CHECKS__END_CHECKS = 0;
+
+  /**
+   * The number of structural features of the '<em>End Checks</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int END_CHECKS_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationImpl <em>Variable Declaration</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableDeclaration()
+   * @generated
+   */
+  int VARIABLE_DECLARATION = 31;
+
+  /**
+   * The number of structural features of the '<em>Variable Declaration</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_DECLARATION_FEATURE_COUNT = 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableDeclarationImpl <em>String Variable Declaration</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableDeclarationImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringVariableDeclaration()
+   * @generated
+   */
+  int STRING_VARIABLE_DECLARATION = 32;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_DECLARATION__KEY = VARIABLE_DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_DECLARATION__VALUE = VARIABLE_DECLARATION_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>String Variable Declaration</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_DECLARATION_FEATURE_COUNT = VARIABLE_DECLARATION_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableDeclarationImpl <em>Int Variable Declaration</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableDeclarationImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntVariableDeclaration()
+   * @generated
+   */
+  int INT_VARIABLE_DECLARATION = 33;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_DECLARATION__KEY = VARIABLE_DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_DECLARATION__VALUE = VARIABLE_DECLARATION_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Int Variable Declaration</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_DECLARATION_FEATURE_COUNT = VARIABLE_DECLARATION_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableDeclarationImpl <em>Boolean Variable Declaration</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableDeclarationImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanVariableDeclaration()
+   * @generated
+   */
+  int BOOLEAN_VARIABLE_DECLARATION = 34;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_DECLARATION__KEY = VARIABLE_DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_DECLARATION__VALUE = VARIABLE_DECLARATION_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Boolean Variable Declaration</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_DECLARATION_FEATURE_COUNT = VARIABLE_DECLARATION_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndCheckImpl <em>End Check</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndCheckImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getEndCheck()
+   * @generated
+   */
+  int END_CHECK = 35;
+
+  /**
+   * The number of structural features of the '<em>End Check</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int END_CHECK_FEATURE_COUNT = 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableEqualsImpl <em>Variable Equals</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableEqualsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableEquals()
+   * @generated
+   */
+  int VARIABLE_EQUALS = 36;
+
+  /**
+   * The number of structural features of the '<em>Variable Equals</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_EQUALS_FEATURE_COUNT = END_CHECK_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableEqualsImpl <em>String Variable Equals</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableEqualsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringVariableEquals()
+   * @generated
+   */
+  int STRING_VARIABLE_EQUALS = 37;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_EQUALS__KEY = VARIABLE_EQUALS_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_EQUALS__VALUE = VARIABLE_EQUALS_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>String Variable Equals</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_EQUALS_FEATURE_COUNT = VARIABLE_EQUALS_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableEqualsImpl <em>Int Variable Equals</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableEqualsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntVariableEquals()
+   * @generated
+   */
+  int INT_VARIABLE_EQUALS = 38;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_EQUALS__KEY = VARIABLE_EQUALS_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_EQUALS__VALUE = VARIABLE_EQUALS_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Int Variable Equals</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_EQUALS_FEATURE_COUNT = VARIABLE_EQUALS_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableEqualsImpl <em>Boolean Variable Equals</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableEqualsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanVariableEquals()
+   * @generated
+   */
+  int BOOLEAN_VARIABLE_EQUALS = 39;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_EQUALS__KEY = VARIABLE_EQUALS_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_EQUALS__VALUE = VARIABLE_EQUALS_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Boolean Variable Equals</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_EQUALS_FEATURE_COUNT = VARIABLE_EQUALS_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableNotEqualsImpl <em>Variable Not Equals</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableNotEqualsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableNotEquals()
+   * @generated
+   */
+  int VARIABLE_NOT_EQUALS = 40;
+
+  /**
+   * The number of structural features of the '<em>Variable Not Equals</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int VARIABLE_NOT_EQUALS_FEATURE_COUNT = END_CHECK_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableNotEqualsImpl <em>String Variable Not Equals</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableNotEqualsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringVariableNotEquals()
+   * @generated
+   */
+  int STRING_VARIABLE_NOT_EQUALS = 41;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_NOT_EQUALS__KEY = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_NOT_EQUALS__VALUE = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>String Variable Not Equals</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_VARIABLE_NOT_EQUALS_FEATURE_COUNT = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableNotEqualsImpl <em>Int Variable Not Equals</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableNotEqualsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntVariableNotEquals()
+   * @generated
+   */
+  int INT_VARIABLE_NOT_EQUALS = 42;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_NOT_EQUALS__KEY = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_NOT_EQUALS__VALUE = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Int Variable Not Equals</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_VARIABLE_NOT_EQUALS_FEATURE_COUNT = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableNotEqualsImpl <em>Boolean Variable Not Equals</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableNotEqualsImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanVariableNotEquals()
+   * @generated
+   */
+  int BOOLEAN_VARIABLE_NOT_EQUALS = 43;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_NOT_EQUALS__KEY = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_NOT_EQUALS__VALUE = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>Boolean Variable Not Equals</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_VARIABLE_NOT_EQUALS_FEATURE_COUNT = VARIABLE_NOT_EQUALS_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockImpl <em>Mock</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getMock()
+   * @generated
+   */
+  int MOCK = 44;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MOCK__NAME = DECLARATION__NAME;
+
+  /**
+   * The number of structural features of the '<em>Mock</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MOCK_FEATURE_COUNT = DECLARATION_FEATURE_COUNT + 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockReferenceImpl <em>Mock Reference</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockReferenceImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getMockReference()
+   * @generated
+   */
+  int MOCK_REFERENCE = 45;
+
+  /**
+   * The feature id for the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MOCK_REFERENCE__REF = 0;
+
+  /**
+   * The number of structural features of the '<em>Mock Reference</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MOCK_REFERENCE_FEATURE_COUNT = 1;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceMockImpl <em>External Service Mock</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceMockImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getExternalServiceMock()
+   * @generated
+   */
+  int EXTERNAL_SERVICE_MOCK = 46;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_SERVICE_MOCK__NAME = MOCK__NAME;
+
+  /**
+   * The feature id for the '<em><b>External Topic</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC = MOCK_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Mocking Rules</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_SERVICE_MOCK__MOCKING_RULES = MOCK_FEATURE_COUNT + 1;
+
+  /**
+   * The number of structural features of the '<em>External Service Mock</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int EXTERNAL_SERVICE_MOCK_FEATURE_COUNT = MOCK_FEATURE_COUNT + 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateMockImpl <em>Delegate Mock</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateMockImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getDelegateMock()
+   * @generated
+   */
+  int DELEGATE_MOCK = 47;
+
+  /**
+   * The feature id for the '<em><b>Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_MOCK__NAME = MOCK__NAME;
+
+  /**
+   * The feature id for the '<em><b>Service Task Reference</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_MOCK__SERVICE_TASK_REFERENCE = MOCK_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Delegate Class</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_MOCK__DELEGATE_CLASS = MOCK_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Manual Mocks</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_MOCK__MANUAL_MOCKS = MOCK_FEATURE_COUNT + 2;
+
+  /**
+   * The number of structural features of the '<em>Delegate Mock</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int DELEGATE_MOCK_FEATURE_COUNT = MOCK_FEATURE_COUNT + 3;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockingRuleImpl <em>Mocking Rule</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockingRuleImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getMockingRule()
+   * @generated
+   */
+  int MOCKING_RULE = 48;
+
+  /**
+   * The feature id for the '<em><b>Comparisons</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MOCKING_RULE__COMPARISONS = 0;
+
+  /**
+   * The feature id for the '<em><b>Variables</b></em>' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MOCKING_RULE__VARIABLES = 1;
+
+  /**
+   * The number of structural features of the '<em>Mocking Rule</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MOCKING_RULE_FEATURE_COUNT = 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualMockImpl <em>Manual Mock</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualMockImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getManualMock()
+   * @generated
+   */
+  int MANUAL_MOCK = 49;
+
+  /**
+   * The feature id for the '<em><b>Service Name</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MANUAL_MOCK__SERVICE_NAME = 0;
+
+  /**
+   * The feature id for the '<em><b>Setter</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MANUAL_MOCK__SETTER = 1;
+
+  /**
+   * The number of structural features of the '<em>Manual Mock</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int MANUAL_MOCK_FEATURE_COUNT = 2;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.CompareImpl <em>Compare</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.CompareImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getCompare()
+   * @generated
+   */
+  int COMPARE = 50;
+
+  /**
+   * The number of structural features of the '<em>Compare</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int COMPARE_FEATURE_COUNT = 0;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringCompareImpl <em>String Compare</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringCompareImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringCompare()
+   * @generated
+   */
+  int STRING_COMPARE = 51;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_COMPARE__KEY = COMPARE_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Compare Symbol</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_COMPARE__COMPARE_SYMBOL = COMPARE_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_COMPARE__VALUE = COMPARE_FEATURE_COUNT + 2;
+
+  /**
+   * The number of structural features of the '<em>String Compare</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int STRING_COMPARE_FEATURE_COUNT = COMPARE_FEATURE_COUNT + 3;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntCompareImpl <em>Int Compare</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntCompareImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntCompare()
+   * @generated
+   */
+  int INT_COMPARE = 52;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_COMPARE__KEY = COMPARE_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Compare Symbol</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_COMPARE__COMPARE_SYMBOL = COMPARE_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_COMPARE__VALUE = COMPARE_FEATURE_COUNT + 2;
+
+  /**
+   * The number of structural features of the '<em>Int Compare</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int INT_COMPARE_FEATURE_COUNT = COMPARE_FEATURE_COUNT + 3;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanCompareImpl <em>Boolean Compare</em>}' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanCompareImpl
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanCompare()
+   * @generated
+   */
+  int BOOLEAN_COMPARE = 53;
+
+  /**
+   * The feature id for the '<em><b>Key</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_COMPARE__KEY = COMPARE_FEATURE_COUNT + 0;
+
+  /**
+   * The feature id for the '<em><b>Compare Symbol</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_COMPARE__COMPARE_SYMBOL = COMPARE_FEATURE_COUNT + 1;
+
+  /**
+   * The feature id for the '<em><b>Value</b></em>' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_COMPARE__VALUE = COMPARE_FEATURE_COUNT + 2;
+
+  /**
+   * The number of structural features of the '<em>Boolean Compare</em>' class.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   * @ordered
+   */
+  int BOOLEAN_COMPARE_FEATURE_COUNT = COMPARE_FEATURE_COUNT + 3;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean <em>Boolean</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBoolean()
+   * @generated
+   */
+  int BOOLEAN = 54;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol <em>String Compare Symbol</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringCompareSymbol()
+   * @generated
+   */
+  int STRING_COMPARE_SYMBOL = 55;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol <em>Int Compare Symbol</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntCompareSymbol()
+   * @generated
+   */
+  int INT_COMPARE_SYMBOL = 56;
+
+  /**
+   * The meta object id for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol <em>Boolean Compare Symbol</em>}' enum.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanCompareSymbol()
+   * @generated
+   */
+  int BOOLEAN_COMPARE_SYMBOL = 57;
+
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Model <em>Model</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Model</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Model
+   * @generated
+   */
+  EClass getModel();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Model#getDeclarations <em>Declarations</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Declarations</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Model#getDeclarations()
+   * @see #getModel()
+   * @generated
+   */
+  EReference getModel_Declarations();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Declaration <em>Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Declaration</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Declaration
+   * @generated
+   */
+  EClass getDeclaration();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Declaration#getName <em>Name</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Name</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Declaration#getName()
+   * @see #getDeclaration()
+   * @generated
+   */
+  EAttribute getDeclaration_Name();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram <em>BPMN Diagram</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>BPMN Diagram</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram
+   * @generated
+   */
+  EClass getBPMNDiagram();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getTestpackage <em>Testpackage</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Testpackage</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getTestpackage()
+   * @see #getBPMNDiagram()
+   * @generated
+   */
+  EAttribute getBPMNDiagram_Testpackage();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getBpmn <em>Bpmn</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Bpmn</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getBpmn()
+   * @see #getBPMNDiagram()
+   * @generated
+   */
+  EAttribute getBPMNDiagram_Bpmn();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getKey()
+   * @see #getBPMNDiagram()
+   * @generated
+   */
+  EAttribute getBPMNDiagram_Key();
+
+  /**
+   * Returns the meta object for the attribute list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getDmn <em>Dmn</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute list '<em>Dmn</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getDmn()
+   * @see #getBPMNDiagram()
+   * @generated
+   */
+  EAttribute getBPMNDiagram_Dmn();
+
+  /**
+   * Returns the meta object for the attribute list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getEmbedded <em>Embedded</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute list '<em>Embedded</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram#getEmbedded()
+   * @see #getBPMNDiagram()
+   * @generated
+   */
+  EAttribute getBPMNDiagram_Embedded();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference <em>BPMN Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>BPMN Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference
+   * @generated
+   */
+  EClass getBPMNReference();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference#getRef()
+   * @see #getBPMNReference()
+   * @generated
+   */
+  EReference getBPMNReference_Ref();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement <em>Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement
+   * @generated
+   */
+  EClass getFlowElement();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement <em>Start Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Start Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement
+   * @generated
+   */
+  EClass getStartFlowElement();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement#getInputVariables <em>Input Variables</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Input Variables</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement#getInputVariables()
+   * @see #getStartFlowElement()
+   * @generated
+   */
+  EReference getStartFlowElement_InputVariables();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement <em>End Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>End Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement
+   * @generated
+   */
+  EClass getEndFlowElement();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement <em>User Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>User Task Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement
+   * @generated
+   */
+  EClass getUserTaskFlowElement();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement#getInputVariables <em>Input Variables</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Input Variables</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement#getInputVariables()
+   * @see #getUserTaskFlowElement()
+   * @generated
+   */
+  EReference getUserTaskFlowElement_InputVariables();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement <em>Manual Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Manual Task Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement
+   * @generated
+   */
+  EClass getManualTaskFlowElement();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement <em>Script Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Script Task Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement
+   * @generated
+   */
+  EClass getScriptTaskFlowElement();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement <em>Service Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Service Task Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement
+   * @generated
+   */
+  EClass getServiceTaskFlowElement();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement <em>Delegate Service Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Delegate Service Task Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement
+   * @generated
+   */
+  EClass getDelegateServiceTaskFlowElement();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement#getDelegate <em>Delegate</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Delegate</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement#getDelegate()
+   * @see #getDelegateServiceTaskFlowElement()
+   * @generated
+   */
+  EAttribute getDelegateServiceTaskFlowElement_Delegate();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement <em>External Service Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>External Service Task Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement
+   * @generated
+   */
+  EClass getExternalServiceTaskFlowElement();
+
+  /**
+   * Returns the meta object for the containment reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement#getExternalTopic <em>External Topic</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>External Topic</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement#getExternalTopic()
+   * @see #getExternalServiceTaskFlowElement()
+   * @generated
+   */
+  EReference getExternalServiceTaskFlowElement_ExternalTopic();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement#getHardcodedInputs <em>Hardcoded Inputs</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Hardcoded Inputs</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement#getHardcodedInputs()
+   * @see #getExternalServiceTaskFlowElement()
+   * @generated
+   */
+  EReference getExternalServiceTaskFlowElement_HardcodedInputs();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement <em>Business Rule Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Business Rule Task Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement
+   * @generated
+   */
+  EClass getBusinessRuleTaskFlowElement();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement <em>Gateway Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Gateway Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement
+   * @generated
+   */
+  EClass getGatewayFlowElement();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement <em>Sequence Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Sequence Flow Element</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement
+   * @generated
+   */
+  EClass getSequenceFlowElement();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement#getExpression <em>Expression</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Expression</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement#getExpression()
+   * @see #getSequenceFlowElement()
+   * @generated
+   */
+  EAttribute getSequenceFlowElement_Expression();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference <em>Flow Element Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Flow Element Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference
+   * @generated
+   */
+  EClass getFlowElementReference();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference#getRef()
+   * @see #getFlowElementReference()
+   * @generated
+   */
+  EReference getFlowElementReference_Ref();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference <em>Delegate Service Task Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Delegate Service Task Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference
+   * @generated
+   */
+  EClass getDelegateServiceTaskReference();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference#getRef()
+   * @see #getDelegateServiceTaskReference()
+   * @generated
+   */
+  EReference getDelegateServiceTaskReference_Ref();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic <em>External Topic</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>External Topic</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic
+   * @generated
+   */
+  EClass getExternalTopic();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference <em>External Topic Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>External Topic Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference
+   * @generated
+   */
+  EClass getExternalTopicReference();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference#getRef()
+   * @see #getExternalTopicReference()
+   * @generated
+   */
+  EReference getExternalTopicReference_Ref();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Variable <em>Variable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Variable</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Variable
+   * @generated
+   */
+  EClass getVariable();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference <em>Variable Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Variable Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference
+   * @generated
+   */
+  EClass getVariableReference();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference#getRef()
+   * @see #getVariableReference()
+   * @generated
+   */
+  EReference getVariableReference_Ref();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable <em>String Variable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>String Variable</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable
+   * @generated
+   */
+  EClass getStringVariable();
+
+  /**
+   * Returns the meta object for the attribute list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable#getProposals <em>Proposals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute list '<em>Proposals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable#getProposals()
+   * @see #getStringVariable()
+   * @generated
+   */
+  EAttribute getStringVariable_Proposals();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable <em>Int Variable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Int Variable</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable
+   * @generated
+   */
+  EClass getIntVariable();
+
+  /**
+   * Returns the meta object for the attribute list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable#getProposals <em>Proposals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute list '<em>Proposals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable#getProposals()
+   * @see #getIntVariable()
+   * @generated
+   */
+  EAttribute getIntVariable_Proposals();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable <em>Boolean Variable</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Boolean Variable</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable
+   * @generated
+   */
+  EClass getBooleanVariable();
+
+  /**
+   * Returns the meta object for the attribute list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable#getProposals <em>Proposals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute list '<em>Proposals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable#getProposals()
+   * @see #getBooleanVariable()
+   * @generated
+   */
+  EAttribute getBooleanVariable_Proposals();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop <em>Loop</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Loop</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Loop
+   * @generated
+   */
+  EClass getLoop();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getStart <em>Start</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Start</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getStart()
+   * @see #getLoop()
+   * @generated
+   */
+  EAttribute getLoop_Start();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getFollower <em>Follower</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Follower</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getFollower()
+   * @see #getLoop()
+   * @generated
+   */
+  EAttribute getLoop_Follower();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getEnd <em>End</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>End</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getEnd()
+   * @see #getLoop()
+   * @generated
+   */
+  EAttribute getLoop_End();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getComplexity <em>Complexity</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Complexity</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getComplexity()
+   * @see #getLoop()
+   * @generated
+   */
+  EAttribute getLoop_Complexity();
+
+  /**
+   * Returns the meta object for the attribute list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getFrequencies <em>Frequencies</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute list '<em>Frequencies</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Loop#getFrequencies()
+   * @see #getLoop()
+   * @generated
+   */
+  EAttribute getLoop_Frequencies();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow <em>Flow</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Flow</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Flow
+   * @generated
+   */
+  EClass getFlow();
+
+  /**
+   * Returns the meta object for the containment reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getBpmnReference <em>Bpmn Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Bpmn Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getBpmnReference()
+   * @see #getFlow()
+   * @generated
+   */
+  EReference getFlow_BpmnReference();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getInclElements <em>Incl Elements</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Incl Elements</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getInclElements()
+   * @see #getFlow()
+   * @generated
+   */
+  EReference getFlow_InclElements();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getExclElements <em>Excl Elements</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Excl Elements</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Flow#getExclElements()
+   * @see #getFlow()
+   * @generated
+   */
+  EReference getFlow_ExclElements();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference <em>Flow Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Flow Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference
+   * @generated
+   */
+  EClass getFlowReference();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference#getRef()
+   * @see #getFlowReference()
+   * @generated
+   */
+  EReference getFlowReference_Ref();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test <em>Test</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Test</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Test
+   * @generated
+   */
+  EClass getTest();
+
+  /**
+   * Returns the meta object for the containment reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getFlowReference <em>Flow Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Flow Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Test#getFlowReference()
+   * @see #getTest()
+   * @generated
+   */
+  EReference getTest_FlowReference();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getPriority <em>Priority</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Priority</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Test#getPriority()
+   * @see #getTest()
+   * @generated
+   */
+  EAttribute getTest_Priority();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getDeclarations <em>Declarations</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Declarations</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Test#getDeclarations()
+   * @see #getTest()
+   * @generated
+   */
+  EReference getTest_Declarations();
+
+  /**
+   * Returns the meta object for the containment reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getEndCheck <em>End Check</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>End Check</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Test#getEndCheck()
+   * @see #getTest()
+   * @generated
+   */
+  EReference getTest_EndCheck();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test#getMocks <em>Mocks</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Mocks</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Test#getMocks()
+   * @see #getTest()
+   * @generated
+   */
+  EReference getTest_Mocks();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations <em>Variable Declarations</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Variable Declarations</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations
+   * @generated
+   */
+  EClass getVariableDeclarations();
+
+  /**
+   * Returns the meta object for the containment reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations#getTaskReference <em>Task Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Task Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations#getTaskReference()
+   * @see #getVariableDeclarations()
+   * @generated
+   */
+  EReference getVariableDeclarations_TaskReference();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations#getVariables <em>Variables</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Variables</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations#getVariables()
+   * @see #getVariableDeclarations()
+   * @generated
+   */
+  EReference getVariableDeclarations_Variables();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks <em>End Checks</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>End Checks</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks
+   * @generated
+   */
+  EClass getEndChecks();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks#getEndChecks <em>End Checks</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>End Checks</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks#getEndChecks()
+   * @see #getEndChecks()
+   * @generated
+   */
+  EReference getEndChecks_EndChecks();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration <em>Variable Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Variable Declaration</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration
+   * @generated
+   */
+  EClass getVariableDeclaration();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration <em>String Variable Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>String Variable Declaration</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration
+   * @generated
+   */
+  EClass getStringVariableDeclaration();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration#getKey()
+   * @see #getStringVariableDeclaration()
+   * @generated
+   */
+  EReference getStringVariableDeclaration_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration#getValue()
+   * @see #getStringVariableDeclaration()
+   * @generated
+   */
+  EAttribute getStringVariableDeclaration_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration <em>Int Variable Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Int Variable Declaration</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration
+   * @generated
+   */
+  EClass getIntVariableDeclaration();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration#getKey()
+   * @see #getIntVariableDeclaration()
+   * @generated
+   */
+  EReference getIntVariableDeclaration_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration#getValue()
+   * @see #getIntVariableDeclaration()
+   * @generated
+   */
+  EAttribute getIntVariableDeclaration_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration <em>Boolean Variable Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Boolean Variable Declaration</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration
+   * @generated
+   */
+  EClass getBooleanVariableDeclaration();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration#getKey()
+   * @see #getBooleanVariableDeclaration()
+   * @generated
+   */
+  EReference getBooleanVariableDeclaration_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration#getValue()
+   * @see #getBooleanVariableDeclaration()
+   * @generated
+   */
+  EAttribute getBooleanVariableDeclaration_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck <em>End Check</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>End Check</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck
+   * @generated
+   */
+  EClass getEndCheck();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals <em>Variable Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Variable Equals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals
+   * @generated
+   */
+  EClass getVariableEquals();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals <em>String Variable Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>String Variable Equals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals
+   * @generated
+   */
+  EClass getStringVariableEquals();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals#getKey()
+   * @see #getStringVariableEquals()
+   * @generated
+   */
+  EReference getStringVariableEquals_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals#getValue()
+   * @see #getStringVariableEquals()
+   * @generated
+   */
+  EAttribute getStringVariableEquals_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals <em>Int Variable Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Int Variable Equals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals
+   * @generated
+   */
+  EClass getIntVariableEquals();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals#getKey()
+   * @see #getIntVariableEquals()
+   * @generated
+   */
+  EReference getIntVariableEquals_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals#getValue()
+   * @see #getIntVariableEquals()
+   * @generated
+   */
+  EAttribute getIntVariableEquals_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals <em>Boolean Variable Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Boolean Variable Equals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals
+   * @generated
+   */
+  EClass getBooleanVariableEquals();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals#getKey()
+   * @see #getBooleanVariableEquals()
+   * @generated
+   */
+  EReference getBooleanVariableEquals_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals#getValue()
+   * @see #getBooleanVariableEquals()
+   * @generated
+   */
+  EAttribute getBooleanVariableEquals_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals <em>Variable Not Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Variable Not Equals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals
+   * @generated
+   */
+  EClass getVariableNotEquals();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals <em>String Variable Not Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>String Variable Not Equals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals
+   * @generated
+   */
+  EClass getStringVariableNotEquals();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals#getKey()
+   * @see #getStringVariableNotEquals()
+   * @generated
+   */
+  EReference getStringVariableNotEquals_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals#getValue()
+   * @see #getStringVariableNotEquals()
+   * @generated
+   */
+  EAttribute getStringVariableNotEquals_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals <em>Int Variable Not Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Int Variable Not Equals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals
+   * @generated
+   */
+  EClass getIntVariableNotEquals();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals#getKey()
+   * @see #getIntVariableNotEquals()
+   * @generated
+   */
+  EReference getIntVariableNotEquals_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals#getValue()
+   * @see #getIntVariableNotEquals()
+   * @generated
+   */
+  EAttribute getIntVariableNotEquals_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals <em>Boolean Variable Not Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Boolean Variable Not Equals</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals
+   * @generated
+   */
+  EClass getBooleanVariableNotEquals();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals#getKey()
+   * @see #getBooleanVariableNotEquals()
+   * @generated
+   */
+  EReference getBooleanVariableNotEquals_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals#getValue()
+   * @see #getBooleanVariableNotEquals()
+   * @generated
+   */
+  EAttribute getBooleanVariableNotEquals_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Mock <em>Mock</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Mock</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Mock
+   * @generated
+   */
+  EClass getMock();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockReference <em>Mock Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Mock Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.MockReference
+   * @generated
+   */
+  EClass getMockReference();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockReference#getRef <em>Ref</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Ref</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.MockReference#getRef()
+   * @see #getMockReference()
+   * @generated
+   */
+  EReference getMockReference_Ref();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock <em>External Service Mock</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>External Service Mock</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock
+   * @generated
+   */
+  EClass getExternalServiceMock();
+
+  /**
+   * Returns the meta object for the containment reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock#getExternalTopic <em>External Topic</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>External Topic</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock#getExternalTopic()
+   * @see #getExternalServiceMock()
+   * @generated
+   */
+  EReference getExternalServiceMock_ExternalTopic();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock#getMockingRules <em>Mocking Rules</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Mocking Rules</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock#getMockingRules()
+   * @see #getExternalServiceMock()
+   * @generated
+   */
+  EReference getExternalServiceMock_MockingRules();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock <em>Delegate Mock</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Delegate Mock</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock
+   * @generated
+   */
+  EClass getDelegateMock();
+
+  /**
+   * Returns the meta object for the containment reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getServiceTaskReference <em>Service Task Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference '<em>Service Task Reference</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getServiceTaskReference()
+   * @see #getDelegateMock()
+   * @generated
+   */
+  EReference getDelegateMock_ServiceTaskReference();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getDelegateClass <em>Delegate Class</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Delegate Class</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getDelegateClass()
+   * @see #getDelegateMock()
+   * @generated
+   */
+  EAttribute getDelegateMock_DelegateClass();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getManualMocks <em>Manual Mocks</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Manual Mocks</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock#getManualMocks()
+   * @see #getDelegateMock()
+   * @generated
+   */
+  EReference getDelegateMock_ManualMocks();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule <em>Mocking Rule</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Mocking Rule</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule
+   * @generated
+   */
+  EClass getMockingRule();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule#getComparisons <em>Comparisons</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Comparisons</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule#getComparisons()
+   * @see #getMockingRule()
+   * @generated
+   */
+  EReference getMockingRule_Comparisons();
+
+  /**
+   * Returns the meta object for the containment reference list '{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule#getVariables <em>Variables</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the containment reference list '<em>Variables</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule#getVariables()
+   * @see #getMockingRule()
+   * @generated
+   */
+  EReference getMockingRule_Variables();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock <em>Manual Mock</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Manual Mock</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock
+   * @generated
+   */
+  EClass getManualMock();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock#getServiceName <em>Service Name</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Service Name</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock#getServiceName()
+   * @see #getManualMock()
+   * @generated
+   */
+  EAttribute getManualMock_ServiceName();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock#getSetter <em>Setter</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Setter</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock#getSetter()
+   * @see #getManualMock()
+   * @generated
+   */
+  EAttribute getManualMock_Setter();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Compare <em>Compare</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Compare</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Compare
+   * @generated
+   */
+  EClass getCompare();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare <em>String Compare</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>String Compare</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare
+   * @generated
+   */
+  EClass getStringCompare();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getKey()
+   * @see #getStringCompare()
+   * @generated
+   */
+  EReference getStringCompare_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getCompareSymbol <em>Compare Symbol</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Compare Symbol</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getCompareSymbol()
+   * @see #getStringCompare()
+   * @generated
+   */
+  EAttribute getStringCompare_CompareSymbol();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare#getValue()
+   * @see #getStringCompare()
+   * @generated
+   */
+  EAttribute getStringCompare_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare <em>Int Compare</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Int Compare</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare
+   * @generated
+   */
+  EClass getIntCompare();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getKey()
+   * @see #getIntCompare()
+   * @generated
+   */
+  EReference getIntCompare_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getCompareSymbol <em>Compare Symbol</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Compare Symbol</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getCompareSymbol()
+   * @see #getIntCompare()
+   * @generated
+   */
+  EAttribute getIntCompare_CompareSymbol();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare#getValue()
+   * @see #getIntCompare()
+   * @generated
+   */
+  EAttribute getIntCompare_Value();
+
+  /**
+   * Returns the meta object for class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare <em>Boolean Compare</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for class '<em>Boolean Compare</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare
+   * @generated
+   */
+  EClass getBooleanCompare();
+
+  /**
+   * Returns the meta object for the reference '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getKey <em>Key</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the reference '<em>Key</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getKey()
+   * @see #getBooleanCompare()
+   * @generated
+   */
+  EReference getBooleanCompare_Key();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getCompareSymbol <em>Compare Symbol</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Compare Symbol</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getCompareSymbol()
+   * @see #getBooleanCompare()
+   * @generated
+   */
+  EAttribute getBooleanCompare_CompareSymbol();
+
+  /**
+   * Returns the meta object for the attribute '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getValue <em>Value</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for the attribute '<em>Value</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare#getValue()
+   * @see #getBooleanCompare()
+   * @generated
+   */
+  EAttribute getBooleanCompare_Value();
+
+  /**
+   * Returns the meta object for enum '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean <em>Boolean</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Boolean</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+   * @generated
+   */
+  EEnum getBoolean();
+
+  /**
+   * Returns the meta object for enum '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol <em>String Compare Symbol</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>String Compare Symbol</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol
+   * @generated
+   */
+  EEnum getStringCompareSymbol();
+
+  /**
+   * Returns the meta object for enum '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol <em>Int Compare Symbol</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Int Compare Symbol</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol
+   * @generated
+   */
+  EEnum getIntCompareSymbol();
+
+  /**
+   * Returns the meta object for enum '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol <em>Boolean Compare Symbol</em>}'.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the meta object for enum '<em>Boolean Compare Symbol</em>'.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol
+   * @generated
+   */
+  EEnum getBooleanCompareSymbol();
+
+  /**
+   * Returns the factory that creates the instances of the model.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the factory that creates the instances of the model.
+   * @generated
+   */
+  TestgeneratorDSLFactory getTestgeneratorDSLFactory();
+
+  /**
+   * <!-- begin-user-doc -->
+   * Defines literals for the meta objects that represent
+   * <ul>
+   *   <li>each class,</li>
+   *   <li>each feature of each class,</li>
+   *   <li>each enum,</li>
+   *   <li>and each data type</li>
+   * </ul>
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  interface Literals
+  {
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ModelImpl <em>Model</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ModelImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getModel()
+     * @generated
+     */
+    EClass MODEL = eINSTANCE.getModel();
+
+    /**
+     * The meta object literal for the '<em><b>Declarations</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference MODEL__DECLARATIONS = eINSTANCE.getModel_Declarations();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DeclarationImpl <em>Declaration</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.DeclarationImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getDeclaration()
+     * @generated
+     */
+    EClass DECLARATION = eINSTANCE.getDeclaration();
+
+    /**
+     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute DECLARATION__NAME = eINSTANCE.getDeclaration_Name();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl <em>BPMN Diagram</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBPMNDiagram()
+     * @generated
+     */
+    EClass BPMN_DIAGRAM = eINSTANCE.getBPMNDiagram();
+
+    /**
+     * The meta object literal for the '<em><b>Testpackage</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BPMN_DIAGRAM__TESTPACKAGE = eINSTANCE.getBPMNDiagram_Testpackage();
+
+    /**
+     * The meta object literal for the '<em><b>Bpmn</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BPMN_DIAGRAM__BPMN = eINSTANCE.getBPMNDiagram_Bpmn();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BPMN_DIAGRAM__KEY = eINSTANCE.getBPMNDiagram_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Dmn</b></em>' attribute list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BPMN_DIAGRAM__DMN = eINSTANCE.getBPMNDiagram_Dmn();
+
+    /**
+     * The meta object literal for the '<em><b>Embedded</b></em>' attribute list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BPMN_DIAGRAM__EMBEDDED = eINSTANCE.getBPMNDiagram_Embedded();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNReferenceImpl <em>BPMN Reference</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNReferenceImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBPMNReference()
+     * @generated
+     */
+    EClass BPMN_REFERENCE = eINSTANCE.getBPMNReference();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference BPMN_REFERENCE__REF = eINSTANCE.getBPMNReference_Ref();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementImpl <em>Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getFlowElement()
+     * @generated
+     */
+    EClass FLOW_ELEMENT = eINSTANCE.getFlowElement();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StartFlowElementImpl <em>Start Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StartFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStartFlowElement()
+     * @generated
+     */
+    EClass START_FLOW_ELEMENT = eINSTANCE.getStartFlowElement();
+
+    /**
+     * The meta object literal for the '<em><b>Input Variables</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference START_FLOW_ELEMENT__INPUT_VARIABLES = eINSTANCE.getStartFlowElement_InputVariables();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndFlowElementImpl <em>End Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getEndFlowElement()
+     * @generated
+     */
+    EClass END_FLOW_ELEMENT = eINSTANCE.getEndFlowElement();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.UserTaskFlowElementImpl <em>User Task Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.UserTaskFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getUserTaskFlowElement()
+     * @generated
+     */
+    EClass USER_TASK_FLOW_ELEMENT = eINSTANCE.getUserTaskFlowElement();
+
+    /**
+     * The meta object literal for the '<em><b>Input Variables</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES = eINSTANCE.getUserTaskFlowElement_InputVariables();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualTaskFlowElementImpl <em>Manual Task Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualTaskFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getManualTaskFlowElement()
+     * @generated
+     */
+    EClass MANUAL_TASK_FLOW_ELEMENT = eINSTANCE.getManualTaskFlowElement();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ScriptTaskFlowElementImpl <em>Script Task Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ScriptTaskFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getScriptTaskFlowElement()
+     * @generated
+     */
+    EClass SCRIPT_TASK_FLOW_ELEMENT = eINSTANCE.getScriptTaskFlowElement();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ServiceTaskFlowElementImpl <em>Service Task Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ServiceTaskFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getServiceTaskFlowElement()
+     * @generated
+     */
+    EClass SERVICE_TASK_FLOW_ELEMENT = eINSTANCE.getServiceTaskFlowElement();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskFlowElementImpl <em>Delegate Service Task Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getDelegateServiceTaskFlowElement()
+     * @generated
+     */
+    EClass DELEGATE_SERVICE_TASK_FLOW_ELEMENT = eINSTANCE.getDelegateServiceTaskFlowElement();
+
+    /**
+     * The meta object literal for the '<em><b>Delegate</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE = eINSTANCE.getDelegateServiceTaskFlowElement_Delegate();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceTaskFlowElementImpl <em>External Service Task Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceTaskFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getExternalServiceTaskFlowElement()
+     * @generated
+     */
+    EClass EXTERNAL_SERVICE_TASK_FLOW_ELEMENT = eINSTANCE.getExternalServiceTaskFlowElement();
+
+    /**
+     * The meta object literal for the '<em><b>External Topic</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC = eINSTANCE.getExternalServiceTaskFlowElement_ExternalTopic();
+
+    /**
+     * The meta object literal for the '<em><b>Hardcoded Inputs</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS = eINSTANCE.getExternalServiceTaskFlowElement_HardcodedInputs();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BusinessRuleTaskFlowElementImpl <em>Business Rule Task Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BusinessRuleTaskFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBusinessRuleTaskFlowElement()
+     * @generated
+     */
+    EClass BUSINESS_RULE_TASK_FLOW_ELEMENT = eINSTANCE.getBusinessRuleTaskFlowElement();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.GatewayFlowElementImpl <em>Gateway Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.GatewayFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getGatewayFlowElement()
+     * @generated
+     */
+    EClass GATEWAY_FLOW_ELEMENT = eINSTANCE.getGatewayFlowElement();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.SequenceFlowElementImpl <em>Sequence Flow Element</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.SequenceFlowElementImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getSequenceFlowElement()
+     * @generated
+     */
+    EClass SEQUENCE_FLOW_ELEMENT = eINSTANCE.getSequenceFlowElement();
+
+    /**
+     * The meta object literal for the '<em><b>Expression</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute SEQUENCE_FLOW_ELEMENT__EXPRESSION = eINSTANCE.getSequenceFlowElement_Expression();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementReferenceImpl <em>Flow Element Reference</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementReferenceImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getFlowElementReference()
+     * @generated
+     */
+    EClass FLOW_ELEMENT_REFERENCE = eINSTANCE.getFlowElementReference();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference FLOW_ELEMENT_REFERENCE__REF = eINSTANCE.getFlowElementReference_Ref();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskReferenceImpl <em>Delegate Service Task Reference</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskReferenceImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getDelegateServiceTaskReference()
+     * @generated
+     */
+    EClass DELEGATE_SERVICE_TASK_REFERENCE = eINSTANCE.getDelegateServiceTaskReference();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference DELEGATE_SERVICE_TASK_REFERENCE__REF = eINSTANCE.getDelegateServiceTaskReference_Ref();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicImpl <em>External Topic</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getExternalTopic()
+     * @generated
+     */
+    EClass EXTERNAL_TOPIC = eINSTANCE.getExternalTopic();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicReferenceImpl <em>External Topic Reference</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicReferenceImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getExternalTopicReference()
+     * @generated
+     */
+    EClass EXTERNAL_TOPIC_REFERENCE = eINSTANCE.getExternalTopicReference();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference EXTERNAL_TOPIC_REFERENCE__REF = eINSTANCE.getExternalTopicReference_Ref();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableImpl <em>Variable</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariable()
+     * @generated
+     */
+    EClass VARIABLE = eINSTANCE.getVariable();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableReferenceImpl <em>Variable Reference</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableReferenceImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableReference()
+     * @generated
+     */
+    EClass VARIABLE_REFERENCE = eINSTANCE.getVariableReference();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference VARIABLE_REFERENCE__REF = eINSTANCE.getVariableReference_Ref();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableImpl <em>String Variable</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringVariable()
+     * @generated
+     */
+    EClass STRING_VARIABLE = eINSTANCE.getStringVariable();
+
+    /**
+     * The meta object literal for the '<em><b>Proposals</b></em>' attribute list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute STRING_VARIABLE__PROPOSALS = eINSTANCE.getStringVariable_Proposals();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableImpl <em>Int Variable</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntVariable()
+     * @generated
+     */
+    EClass INT_VARIABLE = eINSTANCE.getIntVariable();
+
+    /**
+     * The meta object literal for the '<em><b>Proposals</b></em>' attribute list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute INT_VARIABLE__PROPOSALS = eINSTANCE.getIntVariable_Proposals();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableImpl <em>Boolean Variable</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanVariable()
+     * @generated
+     */
+    EClass BOOLEAN_VARIABLE = eINSTANCE.getBooleanVariable();
+
+    /**
+     * The meta object literal for the '<em><b>Proposals</b></em>' attribute list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BOOLEAN_VARIABLE__PROPOSALS = eINSTANCE.getBooleanVariable_Proposals();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl <em>Loop</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getLoop()
+     * @generated
+     */
+    EClass LOOP = eINSTANCE.getLoop();
+
+    /**
+     * The meta object literal for the '<em><b>Start</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute LOOP__START = eINSTANCE.getLoop_Start();
+
+    /**
+     * The meta object literal for the '<em><b>Follower</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute LOOP__FOLLOWER = eINSTANCE.getLoop_Follower();
+
+    /**
+     * The meta object literal for the '<em><b>End</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute LOOP__END = eINSTANCE.getLoop_End();
+
+    /**
+     * The meta object literal for the '<em><b>Complexity</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute LOOP__COMPLEXITY = eINSTANCE.getLoop_Complexity();
+
+    /**
+     * The meta object literal for the '<em><b>Frequencies</b></em>' attribute list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute LOOP__FREQUENCIES = eINSTANCE.getLoop_Frequencies();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowImpl <em>Flow</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getFlow()
+     * @generated
+     */
+    EClass FLOW = eINSTANCE.getFlow();
+
+    /**
+     * The meta object literal for the '<em><b>Bpmn Reference</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference FLOW__BPMN_REFERENCE = eINSTANCE.getFlow_BpmnReference();
+
+    /**
+     * The meta object literal for the '<em><b>Incl Elements</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference FLOW__INCL_ELEMENTS = eINSTANCE.getFlow_InclElements();
+
+    /**
+     * The meta object literal for the '<em><b>Excl Elements</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference FLOW__EXCL_ELEMENTS = eINSTANCE.getFlow_ExclElements();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowReferenceImpl <em>Flow Reference</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowReferenceImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getFlowReference()
+     * @generated
+     */
+    EClass FLOW_REFERENCE = eINSTANCE.getFlowReference();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference FLOW_REFERENCE__REF = eINSTANCE.getFlowReference_Ref();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl <em>Test</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getTest()
+     * @generated
+     */
+    EClass TEST = eINSTANCE.getTest();
+
+    /**
+     * The meta object literal for the '<em><b>Flow Reference</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference TEST__FLOW_REFERENCE = eINSTANCE.getTest_FlowReference();
+
+    /**
+     * The meta object literal for the '<em><b>Priority</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute TEST__PRIORITY = eINSTANCE.getTest_Priority();
+
+    /**
+     * The meta object literal for the '<em><b>Declarations</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference TEST__DECLARATIONS = eINSTANCE.getTest_Declarations();
+
+    /**
+     * The meta object literal for the '<em><b>End Check</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference TEST__END_CHECK = eINSTANCE.getTest_EndCheck();
+
+    /**
+     * The meta object literal for the '<em><b>Mocks</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference TEST__MOCKS = eINSTANCE.getTest_Mocks();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationsImpl <em>Variable Declarations</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableDeclarations()
+     * @generated
+     */
+    EClass VARIABLE_DECLARATIONS = eINSTANCE.getVariableDeclarations();
+
+    /**
+     * The meta object literal for the '<em><b>Task Reference</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference VARIABLE_DECLARATIONS__TASK_REFERENCE = eINSTANCE.getVariableDeclarations_TaskReference();
+
+    /**
+     * The meta object literal for the '<em><b>Variables</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference VARIABLE_DECLARATIONS__VARIABLES = eINSTANCE.getVariableDeclarations_Variables();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndChecksImpl <em>End Checks</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndChecksImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getEndChecks()
+     * @generated
+     */
+    EClass END_CHECKS = eINSTANCE.getEndChecks();
+
+    /**
+     * The meta object literal for the '<em><b>End Checks</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference END_CHECKS__END_CHECKS = eINSTANCE.getEndChecks_EndChecks();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationImpl <em>Variable Declaration</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableDeclaration()
+     * @generated
+     */
+    EClass VARIABLE_DECLARATION = eINSTANCE.getVariableDeclaration();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableDeclarationImpl <em>String Variable Declaration</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableDeclarationImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringVariableDeclaration()
+     * @generated
+     */
+    EClass STRING_VARIABLE_DECLARATION = eINSTANCE.getStringVariableDeclaration();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference STRING_VARIABLE_DECLARATION__KEY = eINSTANCE.getStringVariableDeclaration_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute STRING_VARIABLE_DECLARATION__VALUE = eINSTANCE.getStringVariableDeclaration_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableDeclarationImpl <em>Int Variable Declaration</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableDeclarationImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntVariableDeclaration()
+     * @generated
+     */
+    EClass INT_VARIABLE_DECLARATION = eINSTANCE.getIntVariableDeclaration();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference INT_VARIABLE_DECLARATION__KEY = eINSTANCE.getIntVariableDeclaration_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute INT_VARIABLE_DECLARATION__VALUE = eINSTANCE.getIntVariableDeclaration_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableDeclarationImpl <em>Boolean Variable Declaration</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableDeclarationImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanVariableDeclaration()
+     * @generated
+     */
+    EClass BOOLEAN_VARIABLE_DECLARATION = eINSTANCE.getBooleanVariableDeclaration();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference BOOLEAN_VARIABLE_DECLARATION__KEY = eINSTANCE.getBooleanVariableDeclaration_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BOOLEAN_VARIABLE_DECLARATION__VALUE = eINSTANCE.getBooleanVariableDeclaration_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndCheckImpl <em>End Check</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndCheckImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getEndCheck()
+     * @generated
+     */
+    EClass END_CHECK = eINSTANCE.getEndCheck();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableEqualsImpl <em>Variable Equals</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableEqualsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableEquals()
+     * @generated
+     */
+    EClass VARIABLE_EQUALS = eINSTANCE.getVariableEquals();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableEqualsImpl <em>String Variable Equals</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableEqualsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringVariableEquals()
+     * @generated
+     */
+    EClass STRING_VARIABLE_EQUALS = eINSTANCE.getStringVariableEquals();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference STRING_VARIABLE_EQUALS__KEY = eINSTANCE.getStringVariableEquals_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute STRING_VARIABLE_EQUALS__VALUE = eINSTANCE.getStringVariableEquals_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableEqualsImpl <em>Int Variable Equals</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableEqualsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntVariableEquals()
+     * @generated
+     */
+    EClass INT_VARIABLE_EQUALS = eINSTANCE.getIntVariableEquals();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference INT_VARIABLE_EQUALS__KEY = eINSTANCE.getIntVariableEquals_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute INT_VARIABLE_EQUALS__VALUE = eINSTANCE.getIntVariableEquals_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableEqualsImpl <em>Boolean Variable Equals</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableEqualsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanVariableEquals()
+     * @generated
+     */
+    EClass BOOLEAN_VARIABLE_EQUALS = eINSTANCE.getBooleanVariableEquals();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference BOOLEAN_VARIABLE_EQUALS__KEY = eINSTANCE.getBooleanVariableEquals_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BOOLEAN_VARIABLE_EQUALS__VALUE = eINSTANCE.getBooleanVariableEquals_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableNotEqualsImpl <em>Variable Not Equals</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableNotEqualsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getVariableNotEquals()
+     * @generated
+     */
+    EClass VARIABLE_NOT_EQUALS = eINSTANCE.getVariableNotEquals();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableNotEqualsImpl <em>String Variable Not Equals</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableNotEqualsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringVariableNotEquals()
+     * @generated
+     */
+    EClass STRING_VARIABLE_NOT_EQUALS = eINSTANCE.getStringVariableNotEquals();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference STRING_VARIABLE_NOT_EQUALS__KEY = eINSTANCE.getStringVariableNotEquals_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute STRING_VARIABLE_NOT_EQUALS__VALUE = eINSTANCE.getStringVariableNotEquals_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableNotEqualsImpl <em>Int Variable Not Equals</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableNotEqualsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntVariableNotEquals()
+     * @generated
+     */
+    EClass INT_VARIABLE_NOT_EQUALS = eINSTANCE.getIntVariableNotEquals();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference INT_VARIABLE_NOT_EQUALS__KEY = eINSTANCE.getIntVariableNotEquals_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute INT_VARIABLE_NOT_EQUALS__VALUE = eINSTANCE.getIntVariableNotEquals_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableNotEqualsImpl <em>Boolean Variable Not Equals</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableNotEqualsImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanVariableNotEquals()
+     * @generated
+     */
+    EClass BOOLEAN_VARIABLE_NOT_EQUALS = eINSTANCE.getBooleanVariableNotEquals();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference BOOLEAN_VARIABLE_NOT_EQUALS__KEY = eINSTANCE.getBooleanVariableNotEquals_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BOOLEAN_VARIABLE_NOT_EQUALS__VALUE = eINSTANCE.getBooleanVariableNotEquals_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockImpl <em>Mock</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getMock()
+     * @generated
+     */
+    EClass MOCK = eINSTANCE.getMock();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockReferenceImpl <em>Mock Reference</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockReferenceImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getMockReference()
+     * @generated
+     */
+    EClass MOCK_REFERENCE = eINSTANCE.getMockReference();
+
+    /**
+     * The meta object literal for the '<em><b>Ref</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference MOCK_REFERENCE__REF = eINSTANCE.getMockReference_Ref();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceMockImpl <em>External Service Mock</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceMockImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getExternalServiceMock()
+     * @generated
+     */
+    EClass EXTERNAL_SERVICE_MOCK = eINSTANCE.getExternalServiceMock();
+
+    /**
+     * The meta object literal for the '<em><b>External Topic</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC = eINSTANCE.getExternalServiceMock_ExternalTopic();
+
+    /**
+     * The meta object literal for the '<em><b>Mocking Rules</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference EXTERNAL_SERVICE_MOCK__MOCKING_RULES = eINSTANCE.getExternalServiceMock_MockingRules();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateMockImpl <em>Delegate Mock</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateMockImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getDelegateMock()
+     * @generated
+     */
+    EClass DELEGATE_MOCK = eINSTANCE.getDelegateMock();
+
+    /**
+     * The meta object literal for the '<em><b>Service Task Reference</b></em>' containment reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference DELEGATE_MOCK__SERVICE_TASK_REFERENCE = eINSTANCE.getDelegateMock_ServiceTaskReference();
+
+    /**
+     * The meta object literal for the '<em><b>Delegate Class</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute DELEGATE_MOCK__DELEGATE_CLASS = eINSTANCE.getDelegateMock_DelegateClass();
+
+    /**
+     * The meta object literal for the '<em><b>Manual Mocks</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference DELEGATE_MOCK__MANUAL_MOCKS = eINSTANCE.getDelegateMock_ManualMocks();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockingRuleImpl <em>Mocking Rule</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockingRuleImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getMockingRule()
+     * @generated
+     */
+    EClass MOCKING_RULE = eINSTANCE.getMockingRule();
+
+    /**
+     * The meta object literal for the '<em><b>Comparisons</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference MOCKING_RULE__COMPARISONS = eINSTANCE.getMockingRule_Comparisons();
+
+    /**
+     * The meta object literal for the '<em><b>Variables</b></em>' containment reference list feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference MOCKING_RULE__VARIABLES = eINSTANCE.getMockingRule_Variables();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualMockImpl <em>Manual Mock</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualMockImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getManualMock()
+     * @generated
+     */
+    EClass MANUAL_MOCK = eINSTANCE.getManualMock();
+
+    /**
+     * The meta object literal for the '<em><b>Service Name</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute MANUAL_MOCK__SERVICE_NAME = eINSTANCE.getManualMock_ServiceName();
+
+    /**
+     * The meta object literal for the '<em><b>Setter</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute MANUAL_MOCK__SETTER = eINSTANCE.getManualMock_Setter();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.CompareImpl <em>Compare</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.CompareImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getCompare()
+     * @generated
+     */
+    EClass COMPARE = eINSTANCE.getCompare();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringCompareImpl <em>String Compare</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringCompareImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringCompare()
+     * @generated
+     */
+    EClass STRING_COMPARE = eINSTANCE.getStringCompare();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference STRING_COMPARE__KEY = eINSTANCE.getStringCompare_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Compare Symbol</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute STRING_COMPARE__COMPARE_SYMBOL = eINSTANCE.getStringCompare_CompareSymbol();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute STRING_COMPARE__VALUE = eINSTANCE.getStringCompare_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntCompareImpl <em>Int Compare</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntCompareImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntCompare()
+     * @generated
+     */
+    EClass INT_COMPARE = eINSTANCE.getIntCompare();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference INT_COMPARE__KEY = eINSTANCE.getIntCompare_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Compare Symbol</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute INT_COMPARE__COMPARE_SYMBOL = eINSTANCE.getIntCompare_CompareSymbol();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute INT_COMPARE__VALUE = eINSTANCE.getIntCompare_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanCompareImpl <em>Boolean Compare</em>}' class.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanCompareImpl
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanCompare()
+     * @generated
+     */
+    EClass BOOLEAN_COMPARE = eINSTANCE.getBooleanCompare();
+
+    /**
+     * The meta object literal for the '<em><b>Key</b></em>' reference feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EReference BOOLEAN_COMPARE__KEY = eINSTANCE.getBooleanCompare_Key();
+
+    /**
+     * The meta object literal for the '<em><b>Compare Symbol</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BOOLEAN_COMPARE__COMPARE_SYMBOL = eINSTANCE.getBooleanCompare_CompareSymbol();
+
+    /**
+     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @generated
+     */
+    EAttribute BOOLEAN_COMPARE__VALUE = eINSTANCE.getBooleanCompare_Value();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Boolean <em>Boolean</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.Boolean
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBoolean()
+     * @generated
+     */
+    EEnum BOOLEAN = eINSTANCE.getBoolean();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol <em>String Compare Symbol</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getStringCompareSymbol()
+     * @generated
+     */
+    EEnum STRING_COMPARE_SYMBOL = eINSTANCE.getStringCompareSymbol();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol <em>Int Compare Symbol</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getIntCompareSymbol()
+     * @generated
+     */
+    EEnum INT_COMPARE_SYMBOL = eINSTANCE.getIntCompareSymbol();
+
+    /**
+     * The meta object literal for the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol <em>Boolean Compare Symbol</em>}' enum.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol
+     * @see de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestgeneratorDSLPackageImpl#getBooleanCompareSymbol()
+     * @generated
+     */
+    EEnum BOOLEAN_COMPARE_SYMBOL = eINSTANCE.getBooleanCompareSymbol();
+
+  }
+
+} //TestgeneratorDSLPackage
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -4627,3 +9258,4 @@ public interface TestgeneratorDSLPackage extends EPackage
   }
 
 } //TestgeneratorDSLPackage
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/UserTaskFlowElement.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/UserTaskFlowElement.java
index d5d6c4831dfd723ea31a6163f9ab4c37089119ee..5291abbcc7cb841e5f5951ce5e47293a2621b716 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/UserTaskFlowElement.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/UserTaskFlowElement.java
@@ -1,3 +1,43 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>User Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement#getInputVariables <em>Input Variables</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getUserTaskFlowElement()
+ * @model
+ * @generated
+ */
+public interface UserTaskFlowElement extends FlowElement
+{
+  /**
+   * Returns the value of the '<em><b>Input Variables</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Input Variables</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getUserTaskFlowElement_InputVariables()
+   * @model containment="true"
+   * @generated
+   */
+  EList<VariableReference> getInputVariables();
+
+} // UserTaskFlowElement
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -36,3 +76,4 @@ public interface UserTaskFlowElement extends FlowElement
   EList<VariableReference> getInputVariables();
 
 } // UserTaskFlowElement
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Variable.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Variable.java
index 7cef2da4b8ec1154d868d41d4bb3e98ed9b61dbd..a2347cf1c139d142e0fee7d2c1851f4e4e989c90 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Variable.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/Variable.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariable()
+ * @model
+ * @generated
+ */
+public interface Variable extends Declaration
+{
+} // Variable
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface Variable extends Declaration
 {
 } // Variable
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableDeclaration.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableDeclaration.java
index 4f329fe6420beb271007a817167d548e4af32b4f..ddd0767b31fd2a510c0013c2111e1197eaebd19d 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableDeclaration.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableDeclaration.java
@@ -1,3 +1,25 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariableDeclaration()
+ * @model
+ * @generated
+ */
+public interface VariableDeclaration extends EObject
+{
+} // VariableDeclaration
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -18,3 +40,4 @@ import org.eclipse.emf.ecore.EObject;
 public interface VariableDeclaration extends EObject
 {
 } // VariableDeclaration
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableDeclarations.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableDeclarations.java
index f2be8a551961e3f3643ad37a3194d88444ccb0e3..603847d361379bacbe07d8d5eec03666b6b72a30 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableDeclarations.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableDeclarations.java
@@ -1,3 +1,68 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Declarations</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations#getTaskReference <em>Task Reference</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations#getVariables <em>Variables</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariableDeclarations()
+ * @model
+ * @generated
+ */
+public interface VariableDeclarations extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Task Reference</b></em>' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Task Reference</em>' containment reference.
+   * @see #setTaskReference(FlowElementReference)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariableDeclarations_TaskReference()
+   * @model containment="true"
+   * @generated
+   */
+  FlowElementReference getTaskReference();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations#getTaskReference <em>Task Reference</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Task Reference</em>' containment reference.
+   * @see #getTaskReference()
+   * @generated
+   */
+  void setTaskReference(FlowElementReference value);
+
+  /**
+   * Returns the value of the '<em><b>Variables</b></em>' containment reference list.
+   * The list contents are of type {@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration}.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Variables</em>' containment reference list.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariableDeclarations_Variables()
+   * @model containment="true"
+   * @generated
+   */
+  EList<VariableDeclaration> getVariables();
+
+} // VariableDeclarations
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -61,3 +126,4 @@ public interface VariableDeclarations extends EObject
   EList<VariableDeclaration> getVariables();
 
 } // VariableDeclarations
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableEquals.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableEquals.java
index 5ee9fa981ba76ad223dad89512b97fea5673bb78..04561fe44c5189920e1b735fbd1ae16b7f3d92e9 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableEquals.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableEquals.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariableEquals()
+ * @model
+ * @generated
+ */
+public interface VariableEquals extends EndCheck
+{
+} // VariableEquals
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface VariableEquals extends EndCheck
 {
 } // VariableEquals
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableNotEquals.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableNotEquals.java
index 2ba55a862cffce428732d0616a0ad88930a734bb..b5e5e9c882e87b5ec806b629f4822609e800f4be 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableNotEquals.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableNotEquals.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Not Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariableNotEquals()
+ * @model
+ * @generated
+ */
+public interface VariableNotEquals extends EndCheck
+{
+} // VariableNotEquals
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ package de.fhmuenster.masterthesis.testgeneratorDSL;
 public interface VariableNotEquals extends EndCheck
 {
 } // VariableNotEquals
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableReference.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableReference.java
index 736b3954969f2fdbf6a416371375a11600936e64..2eafe336b3634e7e390fa879dcff66b4d54494d7 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableReference.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/VariableReference.java
@@ -1,3 +1,53 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Variable Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariableReference()
+ * @model
+ * @generated
+ */
+public interface VariableReference extends EObject
+{
+  /**
+   * Returns the value of the '<em><b>Ref</b></em>' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the value of the '<em>Ref</em>' reference.
+   * @see #setRef(Variable)
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#getVariableReference_Ref()
+   * @model
+   * @generated
+   */
+  Variable getRef();
+
+  /**
+   * Sets the value of the '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference#getRef <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param value the new value of the '<em>Ref</em>' reference.
+   * @see #getRef()
+   * @generated
+   */
+  void setRef(Variable value);
+
+} // VariableReference
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -46,3 +96,4 @@ public interface VariableReference extends EObject
   void setRef(Variable value);
 
 } // VariableReference
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BPMNDiagramImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BPMNDiagramImpl.java
index 37fbb93b88a17fb2eae43b296da0303ebd319528..b398324e439b0e2821334040ac521d31ace03019 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BPMNDiagramImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BPMNDiagramImpl.java
@@ -1,3 +1,385 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>BPMN Diagram</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl#getTestpackage <em>Testpackage</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl#getBpmn <em>Bpmn</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl#getDmn <em>Dmn</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNDiagramImpl#getEmbedded <em>Embedded</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BPMNDiagramImpl extends DeclarationImpl implements BPMNDiagram
+{
+  /**
+   * The default value of the '{@link #getTestpackage() <em>Testpackage</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getTestpackage()
+   * @generated
+   * @ordered
+   */
+  protected static final String TESTPACKAGE_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getTestpackage() <em>Testpackage</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getTestpackage()
+   * @generated
+   * @ordered
+   */
+  protected String testpackage = TESTPACKAGE_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getBpmn() <em>Bpmn</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getBpmn()
+   * @generated
+   * @ordered
+   */
+  protected static final String BPMN_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getBpmn() <em>Bpmn</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getBpmn()
+   * @generated
+   * @ordered
+   */
+  protected String bpmn = BPMN_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getKey() <em>Key</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected static final String KEY_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected String key = KEY_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getDmn() <em>Dmn</em>}' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getDmn()
+   * @generated
+   * @ordered
+   */
+  protected EList<String> dmn;
+
+  /**
+   * The cached value of the '{@link #getEmbedded() <em>Embedded</em>}' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getEmbedded()
+   * @generated
+   * @ordered
+   */
+  protected EList<String> embedded;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BPMNDiagramImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.BPMN_DIAGRAM;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getTestpackage()
+  {
+    return testpackage;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setTestpackage(String newTestpackage)
+  {
+    String oldTestpackage = testpackage;
+    testpackage = newTestpackage;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BPMN_DIAGRAM__TESTPACKAGE, oldTestpackage, testpackage));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getBpmn()
+  {
+    return bpmn;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setBpmn(String newBpmn)
+  {
+    String oldBpmn = bpmn;
+    bpmn = newBpmn;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BPMN_DIAGRAM__BPMN, oldBpmn, bpmn));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(String newKey)
+  {
+    String oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BPMN_DIAGRAM__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<String> getDmn()
+  {
+    if (dmn == null)
+    {
+      dmn = new EDataTypeEList<String>(String.class, this, TestgeneratorDSLPackage.BPMN_DIAGRAM__DMN);
+    }
+    return dmn;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<String> getEmbedded()
+  {
+    if (embedded == null)
+    {
+      embedded = new EDataTypeEList<String>(String.class, this, TestgeneratorDSLPackage.BPMN_DIAGRAM__EMBEDDED);
+    }
+    return embedded;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__TESTPACKAGE:
+        return getTestpackage();
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__BPMN:
+        return getBpmn();
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__KEY:
+        return getKey();
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__DMN:
+        return getDmn();
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__EMBEDDED:
+        return getEmbedded();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__TESTPACKAGE:
+        setTestpackage((String)newValue);
+        return;
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__BPMN:
+        setBpmn((String)newValue);
+        return;
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__KEY:
+        setKey((String)newValue);
+        return;
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__DMN:
+        getDmn().clear();
+        getDmn().addAll((Collection<? extends String>)newValue);
+        return;
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__EMBEDDED:
+        getEmbedded().clear();
+        getEmbedded().addAll((Collection<? extends String>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__TESTPACKAGE:
+        setTestpackage(TESTPACKAGE_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__BPMN:
+        setBpmn(BPMN_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__KEY:
+        setKey(KEY_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__DMN:
+        getDmn().clear();
+        return;
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__EMBEDDED:
+        getEmbedded().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__TESTPACKAGE:
+        return TESTPACKAGE_EDEFAULT == null ? testpackage != null : !TESTPACKAGE_EDEFAULT.equals(testpackage);
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__BPMN:
+        return BPMN_EDEFAULT == null ? bpmn != null : !BPMN_EDEFAULT.equals(bpmn);
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__KEY:
+        return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__DMN:
+        return dmn != null && !dmn.isEmpty();
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM__EMBEDDED:
+        return embedded != null && !embedded.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (testpackage: ");
+    result.append(testpackage);
+    result.append(", bpmn: ");
+    result.append(bpmn);
+    result.append(", key: ");
+    result.append(key);
+    result.append(", dmn: ");
+    result.append(dmn);
+    result.append(", embedded: ");
+    result.append(embedded);
+    result.append(')');
+    return result.toString();
+  }
+
+} //BPMNDiagramImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -378,3 +760,4 @@ public class BPMNDiagramImpl extends DeclarationImpl implements BPMNDiagram
   }
 
 } //BPMNDiagramImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BPMNReferenceImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BPMNReferenceImpl.java
index 29e3b35354c904dec8f8f184baa3ac1333e39304..87436c2f821e4940dfe0068693d450c857bed39a 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BPMNReferenceImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BPMNReferenceImpl.java
@@ -1,3 +1,181 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>BPMN Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BPMNReferenceImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BPMNReferenceImpl extends MinimalEObjectImpl.Container implements BPMNReference
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected BPMNDiagram ref;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BPMNReferenceImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.BPMN_REFERENCE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BPMNDiagram getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (BPMNDiagram)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.BPMN_REFERENCE__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public BPMNDiagram basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setRef(BPMNDiagram newRef)
+  {
+    BPMNDiagram oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BPMN_REFERENCE__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BPMN_REFERENCE__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BPMN_REFERENCE__REF:
+        setRef((BPMNDiagram)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BPMN_REFERENCE__REF:
+        setRef((BPMNDiagram)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BPMN_REFERENCE__REF:
+        return ref != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //BPMNReferenceImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -174,3 +352,4 @@ public class BPMNReferenceImpl extends MinimalEObjectImpl.Container implements B
   }
 
 } //BPMNReferenceImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanCompareImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanCompareImpl.java
index 1494d96693303ac1d6c790a82ed2ba19bdd03566..07efb6f6b9532bd8552d807a3f9751e1a3ef6e0c 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanCompareImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanCompareImpl.java
@@ -1,3 +1,312 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Boolean Compare</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanCompareImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanCompareImpl#getCompareSymbol <em>Compare Symbol</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanCompareImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BooleanCompareImpl extends CompareImpl implements BooleanCompare
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected BooleanVariable key;
+
+  /**
+   * The default value of the '{@link #getCompareSymbol() <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getCompareSymbol()
+   * @generated
+   * @ordered
+   */
+  protected static final BooleanCompareSymbol COMPARE_SYMBOL_EDEFAULT = BooleanCompareSymbol.EQUALS;
+
+  /**
+   * The cached value of the '{@link #getCompareSymbol() <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getCompareSymbol()
+   * @generated
+   * @ordered
+   */
+  protected BooleanCompareSymbol compareSymbol = COMPARE_SYMBOL_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final de.fhmuenster.masterthesis.testgeneratorDSL.Boolean VALUE_EDEFAULT = de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.TRUE;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BooleanCompareImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.BOOLEAN_COMPARE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (BooleanVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.BOOLEAN_COMPARE__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public BooleanVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(BooleanVariable newKey)
+  {
+    BooleanVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_COMPARE__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanCompareSymbol getCompareSymbol()
+  {
+    return compareSymbol;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setCompareSymbol(BooleanCompareSymbol newCompareSymbol)
+  {
+    BooleanCompareSymbol oldCompareSymbol = compareSymbol;
+    compareSymbol = newCompareSymbol == null ? COMPARE_SYMBOL_EDEFAULT : newCompareSymbol;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_COMPARE__COMPARE_SYMBOL, oldCompareSymbol, compareSymbol));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public de.fhmuenster.masterthesis.testgeneratorDSL.Boolean getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean newValue)
+  {
+    de.fhmuenster.masterthesis.testgeneratorDSL.Boolean oldValue = value;
+    value = newValue == null ? VALUE_EDEFAULT : newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_COMPARE__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__COMPARE_SYMBOL:
+        return getCompareSymbol();
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__KEY:
+        setKey((BooleanVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__COMPARE_SYMBOL:
+        setCompareSymbol((BooleanCompareSymbol)newValue);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__VALUE:
+        setValue((de.fhmuenster.masterthesis.testgeneratorDSL.Boolean)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__KEY:
+        setKey((BooleanVariable)null);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__COMPARE_SYMBOL:
+        setCompareSymbol(COMPARE_SYMBOL_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__COMPARE_SYMBOL:
+        return compareSymbol != COMPARE_SYMBOL_EDEFAULT;
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE__VALUE:
+        return value != VALUE_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (compareSymbol: ");
+    result.append(compareSymbol);
+    result.append(", value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //BooleanCompareImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -305,3 +614,4 @@ public class BooleanCompareImpl extends CompareImpl implements BooleanCompare
   }
 
 } //BooleanCompareImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableDeclarationImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableDeclarationImpl.java
index 7ae35db5e740f594a31e1109b9db9e31dbe667de..7498f464b555f0121c2e477aa49c60e55f7977f6 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableDeclarationImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableDeclarationImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Boolean Variable Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableDeclarationImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableDeclarationImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BooleanVariableDeclarationImpl extends VariableDeclarationImpl implements BooleanVariableDeclaration
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected BooleanVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final de.fhmuenster.masterthesis.testgeneratorDSL.Boolean VALUE_EDEFAULT = de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.TRUE;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BooleanVariableDeclarationImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_DECLARATION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (BooleanVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public BooleanVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(BooleanVariable newKey)
+  {
+    BooleanVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public de.fhmuenster.masterthesis.testgeneratorDSL.Boolean getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean newValue)
+  {
+    de.fhmuenster.masterthesis.testgeneratorDSL.Boolean oldValue = value;
+    value = newValue == null ? VALUE_EDEFAULT : newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__KEY:
+        setKey((BooleanVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__VALUE:
+        setValue((de.fhmuenster.masterthesis.testgeneratorDSL.Boolean)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__KEY:
+        setKey((BooleanVariable)null);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION__VALUE:
+        return value != VALUE_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //BooleanVariableDeclarationImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class BooleanVariableDeclarationImpl extends VariableDeclarationImpl impl
   }
 
 } //BooleanVariableDeclarationImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableEqualsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableEqualsImpl.java
index 50be697715dc509fef2ba9c4390f7d661d6855c7..b0d1113b012ee46a4fec62601444c9ee093f3eee 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableEqualsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableEqualsImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Boolean Variable Equals</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableEqualsImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableEqualsImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BooleanVariableEqualsImpl extends VariableEqualsImpl implements BooleanVariableEquals
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected BooleanVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final de.fhmuenster.masterthesis.testgeneratorDSL.Boolean VALUE_EDEFAULT = de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.TRUE;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BooleanVariableEqualsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_EQUALS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (BooleanVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public BooleanVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(BooleanVariable newKey)
+  {
+    BooleanVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public de.fhmuenster.masterthesis.testgeneratorDSL.Boolean getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean newValue)
+  {
+    de.fhmuenster.masterthesis.testgeneratorDSL.Boolean oldValue = value;
+    value = newValue == null ? VALUE_EDEFAULT : newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__KEY:
+        setKey((BooleanVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__VALUE:
+        setValue((de.fhmuenster.masterthesis.testgeneratorDSL.Boolean)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__KEY:
+        setKey((BooleanVariable)null);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS__VALUE:
+        return value != VALUE_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //BooleanVariableEqualsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class BooleanVariableEqualsImpl extends VariableEqualsImpl implements Boo
   }
 
 } //BooleanVariableEqualsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableImpl.java
index 49abc423b97633bf8a08721a7679dfac8896e354..5f6f19792276131105acde1f3a1a844bfbf0232b 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableImpl.java
@@ -1,3 +1,168 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Boolean Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableImpl#getProposals <em>Proposals</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BooleanVariableImpl extends VariableImpl implements BooleanVariable
+{
+  /**
+   * The cached value of the '{@link #getProposals() <em>Proposals</em>}' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getProposals()
+   * @generated
+   * @ordered
+   */
+  protected EList<de.fhmuenster.masterthesis.testgeneratorDSL.Boolean> proposals;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BooleanVariableImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<de.fhmuenster.masterthesis.testgeneratorDSL.Boolean> getProposals()
+  {
+    if (proposals == null)
+    {
+      proposals = new EDataTypeEList<de.fhmuenster.masterthesis.testgeneratorDSL.Boolean>(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.class, this, TestgeneratorDSLPackage.BOOLEAN_VARIABLE__PROPOSALS);
+    }
+    return proposals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE__PROPOSALS:
+        return getProposals();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE__PROPOSALS:
+        getProposals().clear();
+        getProposals().addAll((Collection<? extends de.fhmuenster.masterthesis.testgeneratorDSL.Boolean>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE__PROPOSALS:
+        getProposals().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE__PROPOSALS:
+        return proposals != null && !proposals.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (proposals: ");
+    result.append(proposals);
+    result.append(')');
+    return result.toString();
+  }
+
+} //BooleanVariableImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -161,3 +326,4 @@ public class BooleanVariableImpl extends VariableImpl implements BooleanVariable
   }
 
 } //BooleanVariableImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableNotEqualsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableNotEqualsImpl.java
index b24c9ef3f26a0c1a7d0f318ed4b6905dd88d1f13..14cc988ab64655e1bf9e241d34c461d7a9074fd1 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableNotEqualsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BooleanVariableNotEqualsImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Boolean Variable Not Equals</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableNotEqualsImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.BooleanVariableNotEqualsImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BooleanVariableNotEqualsImpl extends VariableNotEqualsImpl implements BooleanVariableNotEquals
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected BooleanVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final de.fhmuenster.masterthesis.testgeneratorDSL.Boolean VALUE_EDEFAULT = de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.TRUE;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected de.fhmuenster.masterthesis.testgeneratorDSL.Boolean value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BooleanVariableNotEqualsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.BOOLEAN_VARIABLE_NOT_EQUALS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (BooleanVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public BooleanVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(BooleanVariable newKey)
+  {
+    BooleanVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public de.fhmuenster.masterthesis.testgeneratorDSL.Boolean getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(de.fhmuenster.masterthesis.testgeneratorDSL.Boolean newValue)
+  {
+    de.fhmuenster.masterthesis.testgeneratorDSL.Boolean oldValue = value;
+    value = newValue == null ? VALUE_EDEFAULT : newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__KEY:
+        setKey((BooleanVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__VALUE:
+        setValue((de.fhmuenster.masterthesis.testgeneratorDSL.Boolean)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__KEY:
+        setKey((BooleanVariable)null);
+        return;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS__VALUE:
+        return value != VALUE_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //BooleanVariableNotEqualsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class BooleanVariableNotEqualsImpl extends VariableNotEqualsImpl implemen
   }
 
 } //BooleanVariableNotEqualsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BusinessRuleTaskFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BusinessRuleTaskFlowElementImpl.java
index ad13caa2b25166724d850cb330cd7e4a44a87082..1f1fdff82e529e39bf2938832eee77d7b79cbbed 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BusinessRuleTaskFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/BusinessRuleTaskFlowElementImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Business Rule Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class BusinessRuleTaskFlowElementImpl extends FlowElementImpl implements BusinessRuleTaskFlowElement
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected BusinessRuleTaskFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.BUSINESS_RULE_TASK_FLOW_ELEMENT;
+  }
+
+} //BusinessRuleTaskFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -177,3 +220,4 @@ public class BusinessRuleTaskFlowElementImpl extends FlowElementImpl implements
   }
 
 } //BusinessRuleTaskFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/CompareImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/CompareImpl.java
index 7b4cfabba3e3f346c0ebceaf0710123f2754acc4..3653448fceb19f86ffbfe61e3eb560c5514c189c 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/CompareImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/CompareImpl.java
@@ -1,3 +1,48 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.Compare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compare</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class CompareImpl extends MinimalEObjectImpl.Container implements Compare
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected CompareImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.COMPARE;
+  }
+
+} //CompareImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -41,3 +86,4 @@ public class CompareImpl extends MinimalEObjectImpl.Container implements Compare
   }
 
 } //CompareImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DeclarationImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DeclarationImpl.java
index 272d1a6a76953fd3793c994a689e85ac33542f11..3189fe797bc52ab0a95510b2b392d6f0fe7c5904 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DeclarationImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DeclarationImpl.java
@@ -1,3 +1,185 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.Declaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DeclarationImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DeclarationImpl extends MinimalEObjectImpl.Container implements Declaration
+{
+  /**
+   * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected static final String NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getName()
+   * @generated
+   * @ordered
+   */
+  protected String name = NAME_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected DeclarationImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.DECLARATION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getName()
+  {
+    return name;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setName(String newName)
+  {
+    String oldName = name;
+    name = newName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.DECLARATION__NAME, oldName, name));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DECLARATION__NAME:
+        return getName();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DECLARATION__NAME:
+        setName((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DECLARATION__NAME:
+        setName(NAME_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DECLARATION__NAME:
+        return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (name: ");
+    result.append(name);
+    result.append(')');
+    return result.toString();
+  }
+
+} //DeclarationImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -178,3 +360,4 @@ public class DeclarationImpl extends MinimalEObjectImpl.Container implements Dec
   }
 
 } //DeclarationImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateMockImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateMockImpl.java
index 6d60a32bf3862819c84d54453d67bfad26de4fd2..ff7647271468edf46f3c646d1fba427242914c96 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateMockImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateMockImpl.java
@@ -1,3 +1,322 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Delegate Mock</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateMockImpl#getServiceTaskReference <em>Service Task Reference</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateMockImpl#getDelegateClass <em>Delegate Class</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateMockImpl#getManualMocks <em>Manual Mocks</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DelegateMockImpl extends MockImpl implements DelegateMock
+{
+  /**
+   * The cached value of the '{@link #getServiceTaskReference() <em>Service Task Reference</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getServiceTaskReference()
+   * @generated
+   * @ordered
+   */
+  protected DelegateServiceTaskReference serviceTaskReference;
+
+  /**
+   * The default value of the '{@link #getDelegateClass() <em>Delegate Class</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getDelegateClass()
+   * @generated
+   * @ordered
+   */
+  protected static final String DELEGATE_CLASS_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getDelegateClass() <em>Delegate Class</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getDelegateClass()
+   * @generated
+   * @ordered
+   */
+  protected String delegateClass = DELEGATE_CLASS_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getManualMocks() <em>Manual Mocks</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getManualMocks()
+   * @generated
+   * @ordered
+   */
+  protected EList<ManualMock> manualMocks;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected DelegateMockImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.DELEGATE_MOCK;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public DelegateServiceTaskReference getServiceTaskReference()
+  {
+    return serviceTaskReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetServiceTaskReference(DelegateServiceTaskReference newServiceTaskReference, NotificationChain msgs)
+  {
+    DelegateServiceTaskReference oldServiceTaskReference = serviceTaskReference;
+    serviceTaskReference = newServiceTaskReference;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE, oldServiceTaskReference, newServiceTaskReference);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setServiceTaskReference(DelegateServiceTaskReference newServiceTaskReference)
+  {
+    if (newServiceTaskReference != serviceTaskReference)
+    {
+      NotificationChain msgs = null;
+      if (serviceTaskReference != null)
+        msgs = ((InternalEObject)serviceTaskReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE, null, msgs);
+      if (newServiceTaskReference != null)
+        msgs = ((InternalEObject)newServiceTaskReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE, null, msgs);
+      msgs = basicSetServiceTaskReference(newServiceTaskReference, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE, newServiceTaskReference, newServiceTaskReference));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getDelegateClass()
+  {
+    return delegateClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setDelegateClass(String newDelegateClass)
+  {
+    String oldDelegateClass = delegateClass;
+    delegateClass = newDelegateClass;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.DELEGATE_MOCK__DELEGATE_CLASS, oldDelegateClass, delegateClass));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<ManualMock> getManualMocks()
+  {
+    if (manualMocks == null)
+    {
+      manualMocks = new EObjectContainmentEList<ManualMock>(ManualMock.class, this, TestgeneratorDSLPackage.DELEGATE_MOCK__MANUAL_MOCKS);
+    }
+    return manualMocks;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE:
+        return basicSetServiceTaskReference(null, msgs);
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__MANUAL_MOCKS:
+        return ((InternalEList<?>)getManualMocks()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE:
+        return getServiceTaskReference();
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__DELEGATE_CLASS:
+        return getDelegateClass();
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__MANUAL_MOCKS:
+        return getManualMocks();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE:
+        setServiceTaskReference((DelegateServiceTaskReference)newValue);
+        return;
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__DELEGATE_CLASS:
+        setDelegateClass((String)newValue);
+        return;
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__MANUAL_MOCKS:
+        getManualMocks().clear();
+        getManualMocks().addAll((Collection<? extends ManualMock>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE:
+        setServiceTaskReference((DelegateServiceTaskReference)null);
+        return;
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__DELEGATE_CLASS:
+        setDelegateClass(DELEGATE_CLASS_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__MANUAL_MOCKS:
+        getManualMocks().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__SERVICE_TASK_REFERENCE:
+        return serviceTaskReference != null;
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__DELEGATE_CLASS:
+        return DELEGATE_CLASS_EDEFAULT == null ? delegateClass != null : !DELEGATE_CLASS_EDEFAULT.equals(delegateClass);
+      case TestgeneratorDSLPackage.DELEGATE_MOCK__MANUAL_MOCKS:
+        return manualMocks != null && !manualMocks.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (delegateClass: ");
+    result.append(delegateClass);
+    result.append(')');
+    return result.toString();
+  }
+
+} //DelegateMockImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -315,3 +634,4 @@ public class DelegateMockImpl extends MockImpl implements DelegateMock
   }
 
 } //DelegateMockImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateServiceTaskFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateServiceTaskFlowElementImpl.java
index 2730b8342b9ae5176528cc4da5b3f8caa4c82191..e0376f80d4521b847cb72457caceaa406c569e23 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateServiceTaskFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateServiceTaskFlowElementImpl.java
@@ -1,3 +1,184 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Delegate Service Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskFlowElementImpl#getDelegate <em>Delegate</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DelegateServiceTaskFlowElementImpl extends ServiceTaskFlowElementImpl implements DelegateServiceTaskFlowElement
+{
+  /**
+   * The default value of the '{@link #getDelegate() <em>Delegate</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getDelegate()
+   * @generated
+   * @ordered
+   */
+  protected static final String DELEGATE_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getDelegate() <em>Delegate</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getDelegate()
+   * @generated
+   * @ordered
+   */
+  protected String delegate = DELEGATE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected DelegateServiceTaskFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.DELEGATE_SERVICE_TASK_FLOW_ELEMENT;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getDelegate()
+  {
+    return delegate;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setDelegate(String newDelegate)
+  {
+    String oldDelegate = delegate;
+    delegate = newDelegate;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE, oldDelegate, delegate));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE:
+        return getDelegate();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE:
+        setDelegate((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE:
+        setDelegate(DELEGATE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE:
+        return DELEGATE_EDEFAULT == null ? delegate != null : !DELEGATE_EDEFAULT.equals(delegate);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (delegate: ");
+    result.append(delegate);
+    result.append(')');
+    return result.toString();
+  }
+
+} //DelegateServiceTaskFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -177,3 +358,4 @@ public class DelegateServiceTaskFlowElementImpl extends ServiceTaskFlowElementIm
   }
 
 } //DelegateServiceTaskFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateServiceTaskReferenceImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateServiceTaskReferenceImpl.java
index e4eee29de19ae4c4fcf804d076b5c188e3489773..ba0cdaf9da43f2d08e90a2df176dc34f09903ac6 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateServiceTaskReferenceImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/DelegateServiceTaskReferenceImpl.java
@@ -1,3 +1,181 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Delegate Service Task Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.DelegateServiceTaskReferenceImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DelegateServiceTaskReferenceImpl extends MinimalEObjectImpl.Container implements DelegateServiceTaskReference
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected DelegateServiceTaskFlowElement ref;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected DelegateServiceTaskReferenceImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.DELEGATE_SERVICE_TASK_REFERENCE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public DelegateServiceTaskFlowElement getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (DelegateServiceTaskFlowElement)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public DelegateServiceTaskFlowElement basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setRef(DelegateServiceTaskFlowElement newRef)
+  {
+    DelegateServiceTaskFlowElement oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE__REF:
+        setRef((DelegateServiceTaskFlowElement)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE__REF:
+        setRef((DelegateServiceTaskFlowElement)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE__REF:
+        return ref != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //DelegateServiceTaskReferenceImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -174,3 +352,4 @@ public class DelegateServiceTaskReferenceImpl extends MinimalEObjectImpl.Contain
   }
 
 } //DelegateServiceTaskReferenceImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndCheckImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndCheckImpl.java
index 8cb04da8dd3cdeafc97b369dc3ff47938e70d8fd..1831f39d6a499c2c901cd5f93ac96f9163fb89fc 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndCheckImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndCheckImpl.java
@@ -1,3 +1,48 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>End Check</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class EndCheckImpl extends MinimalEObjectImpl.Container implements EndCheck
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected EndCheckImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.END_CHECK;
+  }
+
+} //EndCheckImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -41,3 +86,4 @@ public class EndCheckImpl extends MinimalEObjectImpl.Container implements EndChe
   }
 
 } //EndCheckImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndChecksImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndChecksImpl.java
index 8dc98d6d9b2d799b981dfa2df4aac070d8d441dc..deaf1efa4abea2fe6dfc7206f287771c8724496b 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndChecksImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndChecksImpl.java
@@ -1,3 +1,174 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>End Checks</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.EndChecksImpl#getEndChecks <em>End Checks</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class EndChecksImpl extends MinimalEObjectImpl.Container implements EndChecks
+{
+  /**
+   * The cached value of the '{@link #getEndChecks() <em>End Checks</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getEndChecks()
+   * @generated
+   * @ordered
+   */
+  protected EList<EndCheck> endChecks;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected EndChecksImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.END_CHECKS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<EndCheck> getEndChecks()
+  {
+    if (endChecks == null)
+    {
+      endChecks = new EObjectContainmentEList<EndCheck>(EndCheck.class, this, TestgeneratorDSLPackage.END_CHECKS__END_CHECKS);
+    }
+    return endChecks;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.END_CHECKS__END_CHECKS:
+        return ((InternalEList<?>)getEndChecks()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.END_CHECKS__END_CHECKS:
+        return getEndChecks();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.END_CHECKS__END_CHECKS:
+        getEndChecks().clear();
+        getEndChecks().addAll((Collection<? extends EndCheck>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.END_CHECKS__END_CHECKS:
+        getEndChecks().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.END_CHECKS__END_CHECKS:
+        return endChecks != null && !endChecks.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //EndChecksImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -167,3 +338,4 @@ public class EndChecksImpl extends MinimalEObjectImpl.Container implements EndCh
   }
 
 } //EndChecksImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndFlowElementImpl.java
index bbe235a4ff8761364bd3757e2657f127647afe96..b1b77676d4b86789a1cec9777ca8e79f7f86dc9d 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/EndFlowElementImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>End Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class EndFlowElementImpl extends FlowElementImpl implements EndFlowElement
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected EndFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.END_FLOW_ELEMENT;
+  }
+
+} //EndFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class EndFlowElementImpl extends FlowElementImpl implements EndFlowElemen
   }
 
 } //EndFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalServiceMockImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalServiceMockImpl.java
index c211a48980d1bd9b673da1f098ee4549f7fa9ddf..07fbc2f485f6dd4b1f23ae6ae3d6bd527e8c077e 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalServiceMockImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalServiceMockImpl.java
@@ -1,3 +1,249 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>External Service Mock</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceMockImpl#getExternalTopic <em>External Topic</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceMockImpl#getMockingRules <em>Mocking Rules</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExternalServiceMockImpl extends MockImpl implements ExternalServiceMock
+{
+  /**
+   * The cached value of the '{@link #getExternalTopic() <em>External Topic</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getExternalTopic()
+   * @generated
+   * @ordered
+   */
+  protected ExternalTopicReference externalTopic;
+
+  /**
+   * The cached value of the '{@link #getMockingRules() <em>Mocking Rules</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getMockingRules()
+   * @generated
+   * @ordered
+   */
+  protected EList<MockingRule> mockingRules;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ExternalServiceMockImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.EXTERNAL_SERVICE_MOCK;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ExternalTopicReference getExternalTopic()
+  {
+    return externalTopic;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetExternalTopic(ExternalTopicReference newExternalTopic, NotificationChain msgs)
+  {
+    ExternalTopicReference oldExternalTopic = externalTopic;
+    externalTopic = newExternalTopic;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC, oldExternalTopic, newExternalTopic);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setExternalTopic(ExternalTopicReference newExternalTopic)
+  {
+    if (newExternalTopic != externalTopic)
+    {
+      NotificationChain msgs = null;
+      if (externalTopic != null)
+        msgs = ((InternalEObject)externalTopic).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC, null, msgs);
+      if (newExternalTopic != null)
+        msgs = ((InternalEObject)newExternalTopic).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC, null, msgs);
+      msgs = basicSetExternalTopic(newExternalTopic, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC, newExternalTopic, newExternalTopic));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<MockingRule> getMockingRules()
+  {
+    if (mockingRules == null)
+    {
+      mockingRules = new EObjectContainmentEList<MockingRule>(MockingRule.class, this, TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__MOCKING_RULES);
+    }
+    return mockingRules;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC:
+        return basicSetExternalTopic(null, msgs);
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__MOCKING_RULES:
+        return ((InternalEList<?>)getMockingRules()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC:
+        return getExternalTopic();
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__MOCKING_RULES:
+        return getMockingRules();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC:
+        setExternalTopic((ExternalTopicReference)newValue);
+        return;
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__MOCKING_RULES:
+        getMockingRules().clear();
+        getMockingRules().addAll((Collection<? extends MockingRule>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC:
+        setExternalTopic((ExternalTopicReference)null);
+        return;
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__MOCKING_RULES:
+        getMockingRules().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC:
+        return externalTopic != null;
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK__MOCKING_RULES:
+        return mockingRules != null && !mockingRules.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //ExternalServiceMockImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -242,3 +488,4 @@ public class ExternalServiceMockImpl extends MockImpl implements ExternalService
   }
 
 } //ExternalServiceMockImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalServiceTaskFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalServiceTaskFlowElementImpl.java
index 24f20b856646456ff7af626f614b8e99412fa1d9..7e02293fb2659c112ed2b21977cbb84456ee11fa 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalServiceTaskFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalServiceTaskFlowElementImpl.java
@@ -1,3 +1,249 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>External Service Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceTaskFlowElementImpl#getExternalTopic <em>External Topic</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalServiceTaskFlowElementImpl#getHardcodedInputs <em>Hardcoded Inputs</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExternalServiceTaskFlowElementImpl extends ServiceTaskFlowElementImpl implements ExternalServiceTaskFlowElement
+{
+  /**
+   * The cached value of the '{@link #getExternalTopic() <em>External Topic</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getExternalTopic()
+   * @generated
+   * @ordered
+   */
+  protected ExternalTopicReference externalTopic;
+
+  /**
+   * The cached value of the '{@link #getHardcodedInputs() <em>Hardcoded Inputs</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getHardcodedInputs()
+   * @generated
+   * @ordered
+   */
+  protected EList<VariableDeclaration> hardcodedInputs;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ExternalServiceTaskFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ExternalTopicReference getExternalTopic()
+  {
+    return externalTopic;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetExternalTopic(ExternalTopicReference newExternalTopic, NotificationChain msgs)
+  {
+    ExternalTopicReference oldExternalTopic = externalTopic;
+    externalTopic = newExternalTopic;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC, oldExternalTopic, newExternalTopic);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setExternalTopic(ExternalTopicReference newExternalTopic)
+  {
+    if (newExternalTopic != externalTopic)
+    {
+      NotificationChain msgs = null;
+      if (externalTopic != null)
+        msgs = ((InternalEObject)externalTopic).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC, null, msgs);
+      if (newExternalTopic != null)
+        msgs = ((InternalEObject)newExternalTopic).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC, null, msgs);
+      msgs = basicSetExternalTopic(newExternalTopic, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC, newExternalTopic, newExternalTopic));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<VariableDeclaration> getHardcodedInputs()
+  {
+    if (hardcodedInputs == null)
+    {
+      hardcodedInputs = new EObjectContainmentEList<VariableDeclaration>(VariableDeclaration.class, this, TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS);
+    }
+    return hardcodedInputs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC:
+        return basicSetExternalTopic(null, msgs);
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS:
+        return ((InternalEList<?>)getHardcodedInputs()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC:
+        return getExternalTopic();
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS:
+        return getHardcodedInputs();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC:
+        setExternalTopic((ExternalTopicReference)newValue);
+        return;
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS:
+        getHardcodedInputs().clear();
+        getHardcodedInputs().addAll((Collection<? extends VariableDeclaration>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC:
+        setExternalTopic((ExternalTopicReference)null);
+        return;
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS:
+        getHardcodedInputs().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC:
+        return externalTopic != null;
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS:
+        return hardcodedInputs != null && !hardcodedInputs.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //ExternalServiceTaskFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -242,3 +488,4 @@ public class ExternalServiceTaskFlowElementImpl extends ServiceTaskFlowElementIm
   }
 
 } //ExternalServiceTaskFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalTopicImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalTopicImpl.java
index 27d3381df7cb5e0d3b75a23af97a1c453d50796c..310bd47636e7cc12bf5f33097bf7bc48e14c82a9 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalTopicImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalTopicImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>External Topic</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ExternalTopicImpl extends DeclarationImpl implements ExternalTopic
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ExternalTopicImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.EXTERNAL_TOPIC;
+  }
+
+} //ExternalTopicImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class ExternalTopicImpl extends DeclarationImpl implements ExternalTopic
   }
 
 } //ExternalTopicImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalTopicReferenceImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalTopicReferenceImpl.java
index d1fdee94e538ac3c7d9519b6c6efebffbbf7d677..34229d0c7430df2af159e10ff24f0f7dde62475b 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalTopicReferenceImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ExternalTopicReferenceImpl.java
@@ -1,3 +1,181 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>External Topic Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ExternalTopicReferenceImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExternalTopicReferenceImpl extends MinimalEObjectImpl.Container implements ExternalTopicReference
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected ExternalTopic ref;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ExternalTopicReferenceImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.EXTERNAL_TOPIC_REFERENCE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ExternalTopic getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (ExternalTopic)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public ExternalTopic basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setRef(ExternalTopic newRef)
+  {
+    ExternalTopic oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE__REF:
+        setRef((ExternalTopic)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE__REF:
+        setRef((ExternalTopic)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE__REF:
+        return ref != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //ExternalTopicReferenceImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -174,3 +352,4 @@ public class ExternalTopicReferenceImpl extends MinimalEObjectImpl.Container imp
   }
 
 } //ExternalTopicReferenceImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowElementImpl.java
index d1feba613f756336709e55cc3466fccc383e4edf..4fb7195b84e7d19686063bae584c40d5b161605a 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowElementImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class FlowElementImpl extends DeclarationImpl implements FlowElement
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected FlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.FLOW_ELEMENT;
+  }
+
+} //FlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class FlowElementImpl extends DeclarationImpl implements FlowElement
   }
 
 } //FlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowElementReferenceImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowElementReferenceImpl.java
index 57741556e84d1ece67d8ec95d8a2182619cc233c..f19d42a61fb7d1ab49ae7f55fe3285e868c4af26 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowElementReferenceImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowElementReferenceImpl.java
@@ -1,3 +1,181 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow Element Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowElementReferenceImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FlowElementReferenceImpl extends MinimalEObjectImpl.Container implements FlowElementReference
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected FlowElement ref;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected FlowElementReferenceImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.FLOW_ELEMENT_REFERENCE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public FlowElement getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (FlowElement)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public FlowElement basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setRef(FlowElement newRef)
+  {
+    FlowElement oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE__REF:
+        setRef((FlowElement)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE__REF:
+        setRef((FlowElement)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE__REF:
+        return ref != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //FlowElementReferenceImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -174,3 +352,4 @@ public class FlowElementReferenceImpl extends MinimalEObjectImpl.Container imple
   }
 
 } //FlowElementReferenceImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowImpl.java
index f95d67f537080e37ad06954aafaf0c0b529783bb..6979a9359b4ebda6265fa9f2b7973e38f06a7ca4 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowImpl.java
@@ -1,3 +1,288 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowImpl#getBpmnReference <em>Bpmn Reference</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowImpl#getInclElements <em>Incl Elements</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowImpl#getExclElements <em>Excl Elements</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FlowImpl extends DeclarationImpl implements Flow
+{
+  /**
+   * The cached value of the '{@link #getBpmnReference() <em>Bpmn Reference</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getBpmnReference()
+   * @generated
+   * @ordered
+   */
+  protected BPMNReference bpmnReference;
+
+  /**
+   * The cached value of the '{@link #getInclElements() <em>Incl Elements</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getInclElements()
+   * @generated
+   * @ordered
+   */
+  protected EList<FlowElementReference> inclElements;
+
+  /**
+   * The cached value of the '{@link #getExclElements() <em>Excl Elements</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getExclElements()
+   * @generated
+   * @ordered
+   */
+  protected EList<FlowElementReference> exclElements;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected FlowImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.FLOW;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BPMNReference getBpmnReference()
+  {
+    return bpmnReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetBpmnReference(BPMNReference newBpmnReference, NotificationChain msgs)
+  {
+    BPMNReference oldBpmnReference = bpmnReference;
+    bpmnReference = newBpmnReference;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE, oldBpmnReference, newBpmnReference);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setBpmnReference(BPMNReference newBpmnReference)
+  {
+    if (newBpmnReference != bpmnReference)
+    {
+      NotificationChain msgs = null;
+      if (bpmnReference != null)
+        msgs = ((InternalEObject)bpmnReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE, null, msgs);
+      if (newBpmnReference != null)
+        msgs = ((InternalEObject)newBpmnReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE, null, msgs);
+      msgs = basicSetBpmnReference(newBpmnReference, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE, newBpmnReference, newBpmnReference));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<FlowElementReference> getInclElements()
+  {
+    if (inclElements == null)
+    {
+      inclElements = new EObjectContainmentEList<FlowElementReference>(FlowElementReference.class, this, TestgeneratorDSLPackage.FLOW__INCL_ELEMENTS);
+    }
+    return inclElements;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<FlowElementReference> getExclElements()
+  {
+    if (exclElements == null)
+    {
+      exclElements = new EObjectContainmentEList<FlowElementReference>(FlowElementReference.class, this, TestgeneratorDSLPackage.FLOW__EXCL_ELEMENTS);
+    }
+    return exclElements;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE:
+        return basicSetBpmnReference(null, msgs);
+      case TestgeneratorDSLPackage.FLOW__INCL_ELEMENTS:
+        return ((InternalEList<?>)getInclElements()).basicRemove(otherEnd, msgs);
+      case TestgeneratorDSLPackage.FLOW__EXCL_ELEMENTS:
+        return ((InternalEList<?>)getExclElements()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE:
+        return getBpmnReference();
+      case TestgeneratorDSLPackage.FLOW__INCL_ELEMENTS:
+        return getInclElements();
+      case TestgeneratorDSLPackage.FLOW__EXCL_ELEMENTS:
+        return getExclElements();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE:
+        setBpmnReference((BPMNReference)newValue);
+        return;
+      case TestgeneratorDSLPackage.FLOW__INCL_ELEMENTS:
+        getInclElements().clear();
+        getInclElements().addAll((Collection<? extends FlowElementReference>)newValue);
+        return;
+      case TestgeneratorDSLPackage.FLOW__EXCL_ELEMENTS:
+        getExclElements().clear();
+        getExclElements().addAll((Collection<? extends FlowElementReference>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE:
+        setBpmnReference((BPMNReference)null);
+        return;
+      case TestgeneratorDSLPackage.FLOW__INCL_ELEMENTS:
+        getInclElements().clear();
+        return;
+      case TestgeneratorDSLPackage.FLOW__EXCL_ELEMENTS:
+        getExclElements().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW__BPMN_REFERENCE:
+        return bpmnReference != null;
+      case TestgeneratorDSLPackage.FLOW__INCL_ELEMENTS:
+        return inclElements != null && !inclElements.isEmpty();
+      case TestgeneratorDSLPackage.FLOW__EXCL_ELEMENTS:
+        return exclElements != null && !exclElements.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //FlowImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -281,3 +566,4 @@ public class FlowImpl extends DeclarationImpl implements Flow
   }
 
 } //FlowImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowReferenceImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowReferenceImpl.java
index 951e839feface94b88c3fc83118568574488742d..92d9db5a6f023467785c28d50550f625abb91d73 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowReferenceImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/FlowReferenceImpl.java
@@ -1,3 +1,181 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.FlowReferenceImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FlowReferenceImpl extends MinimalEObjectImpl.Container implements FlowReference
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected Flow ref;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected FlowReferenceImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.FLOW_REFERENCE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Flow getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (Flow)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.FLOW_REFERENCE__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Flow basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setRef(Flow newRef)
+  {
+    Flow oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.FLOW_REFERENCE__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW_REFERENCE__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW_REFERENCE__REF:
+        setRef((Flow)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW_REFERENCE__REF:
+        setRef((Flow)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.FLOW_REFERENCE__REF:
+        return ref != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //FlowReferenceImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -174,3 +352,4 @@ public class FlowReferenceImpl extends MinimalEObjectImpl.Container implements F
   }
 
 } //FlowReferenceImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/GatewayFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/GatewayFlowElementImpl.java
index 042ea97675e0b30403ed75ab7af328079a1ad072..f95c9f5b43932f958e093f1c0f7ae8e8be829d37 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/GatewayFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/GatewayFlowElementImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gateway Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GatewayFlowElementImpl extends FlowElementImpl implements GatewayFlowElement
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected GatewayFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.GATEWAY_FLOW_ELEMENT;
+  }
+
+} //GatewayFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class GatewayFlowElementImpl extends FlowElementImpl implements GatewayFl
   }
 
 } //GatewayFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntCompareImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntCompareImpl.java
index 9952cf5bea2c966366bf94eba2cce00560da0fdd..ed56355d3b0b770bac9c579c39767dce073978e8 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntCompareImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntCompareImpl.java
@@ -1,3 +1,312 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Int Compare</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntCompareImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntCompareImpl#getCompareSymbol <em>Compare Symbol</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntCompareImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IntCompareImpl extends CompareImpl implements IntCompare
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected IntVariable key;
+
+  /**
+   * The default value of the '{@link #getCompareSymbol() <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getCompareSymbol()
+   * @generated
+   * @ordered
+   */
+  protected static final IntCompareSymbol COMPARE_SYMBOL_EDEFAULT = IntCompareSymbol.EQUALS;
+
+  /**
+   * The cached value of the '{@link #getCompareSymbol() <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getCompareSymbol()
+   * @generated
+   * @ordered
+   */
+  protected IntCompareSymbol compareSymbol = COMPARE_SYMBOL_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final int VALUE_EDEFAULT = 0;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected int value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected IntCompareImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.INT_COMPARE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (IntVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.INT_COMPARE__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public IntVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(IntVariable newKey)
+  {
+    IntVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_COMPARE__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntCompareSymbol getCompareSymbol()
+  {
+    return compareSymbol;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setCompareSymbol(IntCompareSymbol newCompareSymbol)
+  {
+    IntCompareSymbol oldCompareSymbol = compareSymbol;
+    compareSymbol = newCompareSymbol == null ? COMPARE_SYMBOL_EDEFAULT : newCompareSymbol;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_COMPARE__COMPARE_SYMBOL, oldCompareSymbol, compareSymbol));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(int newValue)
+  {
+    int oldValue = value;
+    value = newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_COMPARE__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_COMPARE__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.INT_COMPARE__COMPARE_SYMBOL:
+        return getCompareSymbol();
+      case TestgeneratorDSLPackage.INT_COMPARE__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_COMPARE__KEY:
+        setKey((IntVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.INT_COMPARE__COMPARE_SYMBOL:
+        setCompareSymbol((IntCompareSymbol)newValue);
+        return;
+      case TestgeneratorDSLPackage.INT_COMPARE__VALUE:
+        setValue((Integer)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_COMPARE__KEY:
+        setKey((IntVariable)null);
+        return;
+      case TestgeneratorDSLPackage.INT_COMPARE__COMPARE_SYMBOL:
+        setCompareSymbol(COMPARE_SYMBOL_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.INT_COMPARE__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_COMPARE__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.INT_COMPARE__COMPARE_SYMBOL:
+        return compareSymbol != COMPARE_SYMBOL_EDEFAULT;
+      case TestgeneratorDSLPackage.INT_COMPARE__VALUE:
+        return value != VALUE_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (compareSymbol: ");
+    result.append(compareSymbol);
+    result.append(", value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //IntCompareImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -305,3 +614,4 @@ public class IntCompareImpl extends CompareImpl implements IntCompare
   }
 
 } //IntCompareImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableDeclarationImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableDeclarationImpl.java
index 6ad7bee035fcac94922c5bad23f88f815919bef9..d0fbfc1152de0acca4fe68f5e307d659193fb94b 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableDeclarationImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableDeclarationImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Int Variable Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableDeclarationImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableDeclarationImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IntVariableDeclarationImpl extends VariableDeclarationImpl implements IntVariableDeclaration
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected IntVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final int VALUE_EDEFAULT = 0;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected int value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected IntVariableDeclarationImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.INT_VARIABLE_DECLARATION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (IntVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public IntVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(IntVariable newKey)
+  {
+    IntVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(int newValue)
+  {
+    int oldValue = value;
+    value = newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__KEY:
+        setKey((IntVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__VALUE:
+        setValue((Integer)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__KEY:
+        setKey((IntVariable)null);
+        return;
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION__VALUE:
+        return value != VALUE_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //IntVariableDeclarationImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class IntVariableDeclarationImpl extends VariableDeclarationImpl implemen
   }
 
 } //IntVariableDeclarationImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableEqualsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableEqualsImpl.java
index 8b166b4d0a177f1cae9420bc49def854286f632a..ccaed3dcd01633439cd19a47ed164e3981338758 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableEqualsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableEqualsImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Int Variable Equals</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableEqualsImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableEqualsImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IntVariableEqualsImpl extends VariableEqualsImpl implements IntVariableEquals
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected IntVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final int VALUE_EDEFAULT = 0;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected int value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected IntVariableEqualsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.INT_VARIABLE_EQUALS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (IntVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public IntVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(IntVariable newKey)
+  {
+    IntVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(int newValue)
+  {
+    int oldValue = value;
+    value = newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__KEY:
+        setKey((IntVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__VALUE:
+        setValue((Integer)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__KEY:
+        setKey((IntVariable)null);
+        return;
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS__VALUE:
+        return value != VALUE_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //IntVariableEqualsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class IntVariableEqualsImpl extends VariableEqualsImpl implements IntVari
   }
 
 } //IntVariableEqualsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableImpl.java
index 73d3a710cb73b4064e4a8c2a5981179cd9af337c..810e42514129208a82b55056680685d7f89df511 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableImpl.java
@@ -1,3 +1,168 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Int Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableImpl#getProposals <em>Proposals</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IntVariableImpl extends VariableImpl implements IntVariable
+{
+  /**
+   * The cached value of the '{@link #getProposals() <em>Proposals</em>}' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getProposals()
+   * @generated
+   * @ordered
+   */
+  protected EList<Integer> proposals;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected IntVariableImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.INT_VARIABLE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<Integer> getProposals()
+  {
+    if (proposals == null)
+    {
+      proposals = new EDataTypeEList<Integer>(Integer.class, this, TestgeneratorDSLPackage.INT_VARIABLE__PROPOSALS);
+    }
+    return proposals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE__PROPOSALS:
+        return getProposals();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE__PROPOSALS:
+        getProposals().clear();
+        getProposals().addAll((Collection<? extends Integer>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE__PROPOSALS:
+        getProposals().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE__PROPOSALS:
+        return proposals != null && !proposals.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (proposals: ");
+    result.append(proposals);
+    result.append(')');
+    return result.toString();
+  }
+
+} //IntVariableImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -161,3 +326,4 @@ public class IntVariableImpl extends VariableImpl implements IntVariable
   }
 
 } //IntVariableImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableNotEqualsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableNotEqualsImpl.java
index 97fe37c000d179451f1df2a89f2f6803c7b8356c..560255d2a7d14f68cb4b6193299560310fd92753 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableNotEqualsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/IntVariableNotEqualsImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Int Variable Not Equals</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableNotEqualsImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.IntVariableNotEqualsImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class IntVariableNotEqualsImpl extends VariableNotEqualsImpl implements IntVariableNotEquals
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected IntVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final int VALUE_EDEFAULT = 0;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected int value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected IntVariableNotEqualsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.INT_VARIABLE_NOT_EQUALS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (IntVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public IntVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(IntVariable newKey)
+  {
+    IntVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(int newValue)
+  {
+    int oldValue = value;
+    value = newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__KEY:
+        setKey((IntVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__VALUE:
+        setValue((Integer)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__KEY:
+        setKey((IntVariable)null);
+        return;
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS__VALUE:
+        return value != VALUE_EDEFAULT;
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //IntVariableNotEqualsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class IntVariableNotEqualsImpl extends VariableNotEqualsImpl implements I
   }
 
 } //IntVariableNotEqualsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/LoopImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/LoopImpl.java
index a3d1dbe99fd72c0faaab2b8672f0234eca4fab8b..f781723028a1e0f112e321920c3f12c71311b10e 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/LoopImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/LoopImpl.java
@@ -1,3 +1,404 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.Loop;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loop</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl#getStart <em>Start</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl#getFollower <em>Follower</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl#getEnd <em>End</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl#getComplexity <em>Complexity</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.LoopImpl#getFrequencies <em>Frequencies</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LoopImpl extends DeclarationImpl implements Loop
+{
+  /**
+   * The default value of the '{@link #getStart() <em>Start</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getStart()
+   * @generated
+   * @ordered
+   */
+  protected static final String START_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getStart() <em>Start</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getStart()
+   * @generated
+   * @ordered
+   */
+  protected String start = START_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getFollower() <em>Follower</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFollower()
+   * @generated
+   * @ordered
+   */
+  protected static final String FOLLOWER_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getFollower() <em>Follower</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFollower()
+   * @generated
+   * @ordered
+   */
+  protected String follower = FOLLOWER_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getEnd() <em>End</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getEnd()
+   * @generated
+   * @ordered
+   */
+  protected static final String END_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getEnd() <em>End</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getEnd()
+   * @generated
+   * @ordered
+   */
+  protected String end = END_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getComplexity() <em>Complexity</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getComplexity()
+   * @generated
+   * @ordered
+   */
+  protected static final int COMPLEXITY_EDEFAULT = 0;
+
+  /**
+   * The cached value of the '{@link #getComplexity() <em>Complexity</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getComplexity()
+   * @generated
+   * @ordered
+   */
+  protected int complexity = COMPLEXITY_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getFrequencies() <em>Frequencies</em>}' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFrequencies()
+   * @generated
+   * @ordered
+   */
+  protected EList<Integer> frequencies;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected LoopImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.LOOP;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getStart()
+  {
+    return start;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setStart(String newStart)
+  {
+    String oldStart = start;
+    start = newStart;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.LOOP__START, oldStart, start));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getFollower()
+  {
+    return follower;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setFollower(String newFollower)
+  {
+    String oldFollower = follower;
+    follower = newFollower;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.LOOP__FOLLOWER, oldFollower, follower));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getEnd()
+  {
+    return end;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setEnd(String newEnd)
+  {
+    String oldEnd = end;
+    end = newEnd;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.LOOP__END, oldEnd, end));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getComplexity()
+  {
+    return complexity;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setComplexity(int newComplexity)
+  {
+    int oldComplexity = complexity;
+    complexity = newComplexity;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.LOOP__COMPLEXITY, oldComplexity, complexity));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<Integer> getFrequencies()
+  {
+    if (frequencies == null)
+    {
+      frequencies = new EDataTypeEList<Integer>(Integer.class, this, TestgeneratorDSLPackage.LOOP__FREQUENCIES);
+    }
+    return frequencies;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.LOOP__START:
+        return getStart();
+      case TestgeneratorDSLPackage.LOOP__FOLLOWER:
+        return getFollower();
+      case TestgeneratorDSLPackage.LOOP__END:
+        return getEnd();
+      case TestgeneratorDSLPackage.LOOP__COMPLEXITY:
+        return getComplexity();
+      case TestgeneratorDSLPackage.LOOP__FREQUENCIES:
+        return getFrequencies();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.LOOP__START:
+        setStart((String)newValue);
+        return;
+      case TestgeneratorDSLPackage.LOOP__FOLLOWER:
+        setFollower((String)newValue);
+        return;
+      case TestgeneratorDSLPackage.LOOP__END:
+        setEnd((String)newValue);
+        return;
+      case TestgeneratorDSLPackage.LOOP__COMPLEXITY:
+        setComplexity((Integer)newValue);
+        return;
+      case TestgeneratorDSLPackage.LOOP__FREQUENCIES:
+        getFrequencies().clear();
+        getFrequencies().addAll((Collection<? extends Integer>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.LOOP__START:
+        setStart(START_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.LOOP__FOLLOWER:
+        setFollower(FOLLOWER_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.LOOP__END:
+        setEnd(END_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.LOOP__COMPLEXITY:
+        setComplexity(COMPLEXITY_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.LOOP__FREQUENCIES:
+        getFrequencies().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.LOOP__START:
+        return START_EDEFAULT == null ? start != null : !START_EDEFAULT.equals(start);
+      case TestgeneratorDSLPackage.LOOP__FOLLOWER:
+        return FOLLOWER_EDEFAULT == null ? follower != null : !FOLLOWER_EDEFAULT.equals(follower);
+      case TestgeneratorDSLPackage.LOOP__END:
+        return END_EDEFAULT == null ? end != null : !END_EDEFAULT.equals(end);
+      case TestgeneratorDSLPackage.LOOP__COMPLEXITY:
+        return complexity != COMPLEXITY_EDEFAULT;
+      case TestgeneratorDSLPackage.LOOP__FREQUENCIES:
+        return frequencies != null && !frequencies.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (start: ");
+    result.append(start);
+    result.append(", follower: ");
+    result.append(follower);
+    result.append(", end: ");
+    result.append(end);
+    result.append(", complexity: ");
+    result.append(complexity);
+    result.append(", frequencies: ");
+    result.append(frequencies);
+    result.append(')');
+    return result.toString();
+  }
+
+} //LoopImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -397,3 +798,4 @@ public class LoopImpl extends DeclarationImpl implements Loop
   }
 
 } //LoopImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ManualMockImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ManualMockImpl.java
index 13427ab4f34f83f1e2860ba9cbcc8e18f2f0c3e6..d834f9ccf0ab7697fd93cfff4598375d48aead72 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ManualMockImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ManualMockImpl.java
@@ -1,3 +1,243 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Manual Mock</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualMockImpl#getServiceName <em>Service Name</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ManualMockImpl#getSetter <em>Setter</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ManualMockImpl extends MinimalEObjectImpl.Container implements ManualMock
+{
+  /**
+   * The default value of the '{@link #getServiceName() <em>Service Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getServiceName()
+   * @generated
+   * @ordered
+   */
+  protected static final String SERVICE_NAME_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getServiceName() <em>Service Name</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getServiceName()
+   * @generated
+   * @ordered
+   */
+  protected String serviceName = SERVICE_NAME_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getSetter() <em>Setter</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getSetter()
+   * @generated
+   * @ordered
+   */
+  protected static final String SETTER_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getSetter() <em>Setter</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getSetter()
+   * @generated
+   * @ordered
+   */
+  protected String setter = SETTER_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ManualMockImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.MANUAL_MOCK;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getServiceName()
+  {
+    return serviceName;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setServiceName(String newServiceName)
+  {
+    String oldServiceName = serviceName;
+    serviceName = newServiceName;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.MANUAL_MOCK__SERVICE_NAME, oldServiceName, serviceName));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getSetter()
+  {
+    return setter;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setSetter(String newSetter)
+  {
+    String oldSetter = setter;
+    setter = newSetter;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.MANUAL_MOCK__SETTER, oldSetter, setter));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MANUAL_MOCK__SERVICE_NAME:
+        return getServiceName();
+      case TestgeneratorDSLPackage.MANUAL_MOCK__SETTER:
+        return getSetter();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MANUAL_MOCK__SERVICE_NAME:
+        setServiceName((String)newValue);
+        return;
+      case TestgeneratorDSLPackage.MANUAL_MOCK__SETTER:
+        setSetter((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MANUAL_MOCK__SERVICE_NAME:
+        setServiceName(SERVICE_NAME_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.MANUAL_MOCK__SETTER:
+        setSetter(SETTER_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MANUAL_MOCK__SERVICE_NAME:
+        return SERVICE_NAME_EDEFAULT == null ? serviceName != null : !SERVICE_NAME_EDEFAULT.equals(serviceName);
+      case TestgeneratorDSLPackage.MANUAL_MOCK__SETTER:
+        return SETTER_EDEFAULT == null ? setter != null : !SETTER_EDEFAULT.equals(setter);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (serviceName: ");
+    result.append(serviceName);
+    result.append(", setter: ");
+    result.append(setter);
+    result.append(')');
+    return result.toString();
+  }
+
+} //ManualMockImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -236,3 +476,4 @@ public class ManualMockImpl extends MinimalEObjectImpl.Container implements Manu
   }
 
 } //ManualMockImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ManualTaskFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ManualTaskFlowElementImpl.java
index ee1cdd87d8b7d5187aa5b3cce171ff9101321448..92de2ebd358425c89ccadade15078fe4eb88c7b5 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ManualTaskFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ManualTaskFlowElementImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Manual Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ManualTaskFlowElementImpl extends FlowElementImpl implements ManualTaskFlowElement
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ManualTaskFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.MANUAL_TASK_FLOW_ELEMENT;
+  }
+
+} //ManualTaskFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class ManualTaskFlowElementImpl extends FlowElementImpl implements Manual
   }
 
 } //ManualTaskFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockImpl.java
index b69150e427bbc8defae0e9ab925ee8be2c21abfb..19ddf975839f7d30c2b28e2ef5edd0af38516aed 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.Mock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Mock</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MockImpl extends DeclarationImpl implements Mock
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected MockImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.MOCK;
+  }
+
+} //MockImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class MockImpl extends DeclarationImpl implements Mock
   }
 
 } //MockImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockReferenceImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockReferenceImpl.java
index a8681896124ab433147904e864b5a361ae6f11da..645d38afd35f397feb1fa72b47238d9f1a2dcc3a 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockReferenceImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockReferenceImpl.java
@@ -1,3 +1,181 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.Mock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Mock Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockReferenceImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MockReferenceImpl extends MinimalEObjectImpl.Container implements MockReference
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected Mock ref;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected MockReferenceImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.MOCK_REFERENCE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Mock getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (Mock)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.MOCK_REFERENCE__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Mock basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setRef(Mock newRef)
+  {
+    Mock oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.MOCK_REFERENCE__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCK_REFERENCE__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCK_REFERENCE__REF:
+        setRef((Mock)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCK_REFERENCE__REF:
+        setRef((Mock)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCK_REFERENCE__REF:
+        return ref != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //MockReferenceImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -174,3 +352,4 @@ public class MockReferenceImpl extends MinimalEObjectImpl.Container implements M
   }
 
 } //MockReferenceImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockingRuleImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockingRuleImpl.java
index 73d5a5343b344c67a4ad579733f81710548db5b4..7bd7dec0b5b3df19ced5b6050036aa679d27ee11 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockingRuleImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/MockingRuleImpl.java
@@ -1,3 +1,214 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.Compare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Mocking Rule</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockingRuleImpl#getComparisons <em>Comparisons</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.MockingRuleImpl#getVariables <em>Variables</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MockingRuleImpl extends MinimalEObjectImpl.Container implements MockingRule
+{
+  /**
+   * The cached value of the '{@link #getComparisons() <em>Comparisons</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getComparisons()
+   * @generated
+   * @ordered
+   */
+  protected EList<Compare> comparisons;
+
+  /**
+   * The cached value of the '{@link #getVariables() <em>Variables</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getVariables()
+   * @generated
+   * @ordered
+   */
+  protected EList<VariableDeclaration> variables;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected MockingRuleImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.MOCKING_RULE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<Compare> getComparisons()
+  {
+    if (comparisons == null)
+    {
+      comparisons = new EObjectContainmentEList<Compare>(Compare.class, this, TestgeneratorDSLPackage.MOCKING_RULE__COMPARISONS);
+    }
+    return comparisons;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<VariableDeclaration> getVariables()
+  {
+    if (variables == null)
+    {
+      variables = new EObjectContainmentEList<VariableDeclaration>(VariableDeclaration.class, this, TestgeneratorDSLPackage.MOCKING_RULE__VARIABLES);
+    }
+    return variables;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCKING_RULE__COMPARISONS:
+        return ((InternalEList<?>)getComparisons()).basicRemove(otherEnd, msgs);
+      case TestgeneratorDSLPackage.MOCKING_RULE__VARIABLES:
+        return ((InternalEList<?>)getVariables()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCKING_RULE__COMPARISONS:
+        return getComparisons();
+      case TestgeneratorDSLPackage.MOCKING_RULE__VARIABLES:
+        return getVariables();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCKING_RULE__COMPARISONS:
+        getComparisons().clear();
+        getComparisons().addAll((Collection<? extends Compare>)newValue);
+        return;
+      case TestgeneratorDSLPackage.MOCKING_RULE__VARIABLES:
+        getVariables().clear();
+        getVariables().addAll((Collection<? extends VariableDeclaration>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCKING_RULE__COMPARISONS:
+        getComparisons().clear();
+        return;
+      case TestgeneratorDSLPackage.MOCKING_RULE__VARIABLES:
+        getVariables().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MOCKING_RULE__COMPARISONS:
+        return comparisons != null && !comparisons.isEmpty();
+      case TestgeneratorDSLPackage.MOCKING_RULE__VARIABLES:
+        return variables != null && !variables.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //MockingRuleImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -207,3 +418,4 @@ public class MockingRuleImpl extends MinimalEObjectImpl.Container implements Moc
   }
 
 } //MockingRuleImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ModelImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ModelImpl.java
index 25e403c6afe19e229fb708d195ad07601d911707..68ea5b17ff42f3ee41e8a0c7c87218190439e031 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ModelImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ModelImpl.java
@@ -1,3 +1,174 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.Declaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Model;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.ModelImpl#getDeclarations <em>Declarations</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ModelImpl extends MinimalEObjectImpl.Container implements Model
+{
+  /**
+   * The cached value of the '{@link #getDeclarations() <em>Declarations</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getDeclarations()
+   * @generated
+   * @ordered
+   */
+  protected EList<Declaration> declarations;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ModelImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.MODEL;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<Declaration> getDeclarations()
+  {
+    if (declarations == null)
+    {
+      declarations = new EObjectContainmentEList<Declaration>(Declaration.class, this, TestgeneratorDSLPackage.MODEL__DECLARATIONS);
+    }
+    return declarations;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MODEL__DECLARATIONS:
+        return ((InternalEList<?>)getDeclarations()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MODEL__DECLARATIONS:
+        return getDeclarations();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MODEL__DECLARATIONS:
+        getDeclarations().clear();
+        getDeclarations().addAll((Collection<? extends Declaration>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MODEL__DECLARATIONS:
+        getDeclarations().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.MODEL__DECLARATIONS:
+        return declarations != null && !declarations.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //ModelImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -167,3 +338,4 @@ public class ModelImpl extends MinimalEObjectImpl.Container implements Model
   }
 
 } //ModelImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ScriptTaskFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ScriptTaskFlowElementImpl.java
index aef11974bc313f1cd34f7d449a8e919fe2840c54..b243b176e04aff953fc60e97b003098f02b74081 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ScriptTaskFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ScriptTaskFlowElementImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Script Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ScriptTaskFlowElementImpl extends FlowElementImpl implements ScriptTaskFlowElement
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ScriptTaskFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.SCRIPT_TASK_FLOW_ELEMENT;
+  }
+
+} //ScriptTaskFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class ScriptTaskFlowElementImpl extends FlowElementImpl implements Script
   }
 
 } //ScriptTaskFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/SequenceFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/SequenceFlowElementImpl.java
index 1f41fce3e5ca8391f9ca1ebaf052b08f131d95c6..d57a0e69ebe76889222654394f0877ea15b1ea00 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/SequenceFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/SequenceFlowElementImpl.java
@@ -1,3 +1,184 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.SequenceFlowElementImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SequenceFlowElementImpl extends FlowElementImpl implements SequenceFlowElement
+{
+  /**
+   * The default value of the '{@link #getExpression() <em>Expression</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getExpression()
+   * @generated
+   * @ordered
+   */
+  protected static final String EXPRESSION_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getExpression() <em>Expression</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getExpression()
+   * @generated
+   * @ordered
+   */
+  protected String expression = EXPRESSION_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected SequenceFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.SEQUENCE_FLOW_ELEMENT;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getExpression()
+  {
+    return expression;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setExpression(String newExpression)
+  {
+    String oldExpression = expression;
+    expression = newExpression;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.SEQUENCE_FLOW_ELEMENT__EXPRESSION, oldExpression, expression));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.SEQUENCE_FLOW_ELEMENT__EXPRESSION:
+        return getExpression();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.SEQUENCE_FLOW_ELEMENT__EXPRESSION:
+        setExpression((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.SEQUENCE_FLOW_ELEMENT__EXPRESSION:
+        setExpression(EXPRESSION_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.SEQUENCE_FLOW_ELEMENT__EXPRESSION:
+        return EXPRESSION_EDEFAULT == null ? expression != null : !EXPRESSION_EDEFAULT.equals(expression);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (expression: ");
+    result.append(expression);
+    result.append(')');
+    return result.toString();
+  }
+
+} //SequenceFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -177,3 +358,4 @@ public class SequenceFlowElementImpl extends FlowElementImpl implements Sequence
   }
 
 } //SequenceFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ServiceTaskFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ServiceTaskFlowElementImpl.java
index 6e83cb703b206d609f50dfb1ea00f92f7fd0129d..ad14a91a411ee0bea8ce252ace608f96eedeee35 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ServiceTaskFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/ServiceTaskFlowElementImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Service Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ServiceTaskFlowElementImpl extends FlowElementImpl implements ServiceTaskFlowElement
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected ServiceTaskFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.SERVICE_TASK_FLOW_ELEMENT;
+  }
+
+} //ServiceTaskFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class ServiceTaskFlowElementImpl extends FlowElementImpl implements Servi
   }
 
 } //ServiceTaskFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StartFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StartFlowElementImpl.java
index 44c1c77d06fdcbd3c3a8937aa256f7aced1b8c91..e7d84b399427a84003a0df68010cd12692afc66f 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StartFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StartFlowElementImpl.java
@@ -1,3 +1,172 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Start Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StartFlowElementImpl#getInputVariables <em>Input Variables</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StartFlowElementImpl extends FlowElementImpl implements StartFlowElement
+{
+  /**
+   * The cached value of the '{@link #getInputVariables() <em>Input Variables</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getInputVariables()
+   * @generated
+   * @ordered
+   */
+  protected EList<VariableReference> inputVariables;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected StartFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.START_FLOW_ELEMENT;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<VariableReference> getInputVariables()
+  {
+    if (inputVariables == null)
+    {
+      inputVariables = new EObjectContainmentEList<VariableReference>(VariableReference.class, this, TestgeneratorDSLPackage.START_FLOW_ELEMENT__INPUT_VARIABLES);
+    }
+    return inputVariables;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.START_FLOW_ELEMENT__INPUT_VARIABLES:
+        return ((InternalEList<?>)getInputVariables()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.START_FLOW_ELEMENT__INPUT_VARIABLES:
+        return getInputVariables();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.START_FLOW_ELEMENT__INPUT_VARIABLES:
+        getInputVariables().clear();
+        getInputVariables().addAll((Collection<? extends VariableReference>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.START_FLOW_ELEMENT__INPUT_VARIABLES:
+        getInputVariables().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.START_FLOW_ELEMENT__INPUT_VARIABLES:
+        return inputVariables != null && !inputVariables.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //StartFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -165,3 +334,4 @@ public class StartFlowElementImpl extends FlowElementImpl implements StartFlowEl
   }
 
 } //StartFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringCompareImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringCompareImpl.java
index 02526586c56e41c5e3209bdae82337fd529263a9..e7cdd6b035b28ae55bb05bdd7edca244a4dce1c9 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringCompareImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringCompareImpl.java
@@ -1,3 +1,312 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Compare</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringCompareImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringCompareImpl#getCompareSymbol <em>Compare Symbol</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringCompareImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StringCompareImpl extends CompareImpl implements StringCompare
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected StringVariable key;
+
+  /**
+   * The default value of the '{@link #getCompareSymbol() <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getCompareSymbol()
+   * @generated
+   * @ordered
+   */
+  protected static final StringCompareSymbol COMPARE_SYMBOL_EDEFAULT = StringCompareSymbol.EQUALS;
+
+  /**
+   * The cached value of the '{@link #getCompareSymbol() <em>Compare Symbol</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getCompareSymbol()
+   * @generated
+   * @ordered
+   */
+  protected StringCompareSymbol compareSymbol = COMPARE_SYMBOL_EDEFAULT;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final String VALUE_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected String value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected StringCompareImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.STRING_COMPARE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (StringVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.STRING_COMPARE__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public StringVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(StringVariable newKey)
+  {
+    StringVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_COMPARE__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringCompareSymbol getCompareSymbol()
+  {
+    return compareSymbol;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setCompareSymbol(StringCompareSymbol newCompareSymbol)
+  {
+    StringCompareSymbol oldCompareSymbol = compareSymbol;
+    compareSymbol = newCompareSymbol == null ? COMPARE_SYMBOL_EDEFAULT : newCompareSymbol;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_COMPARE__COMPARE_SYMBOL, oldCompareSymbol, compareSymbol));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(String newValue)
+  {
+    String oldValue = value;
+    value = newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_COMPARE__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_COMPARE__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.STRING_COMPARE__COMPARE_SYMBOL:
+        return getCompareSymbol();
+      case TestgeneratorDSLPackage.STRING_COMPARE__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_COMPARE__KEY:
+        setKey((StringVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.STRING_COMPARE__COMPARE_SYMBOL:
+        setCompareSymbol((StringCompareSymbol)newValue);
+        return;
+      case TestgeneratorDSLPackage.STRING_COMPARE__VALUE:
+        setValue((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_COMPARE__KEY:
+        setKey((StringVariable)null);
+        return;
+      case TestgeneratorDSLPackage.STRING_COMPARE__COMPARE_SYMBOL:
+        setCompareSymbol(COMPARE_SYMBOL_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.STRING_COMPARE__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_COMPARE__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.STRING_COMPARE__COMPARE_SYMBOL:
+        return compareSymbol != COMPARE_SYMBOL_EDEFAULT;
+      case TestgeneratorDSLPackage.STRING_COMPARE__VALUE:
+        return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (compareSymbol: ");
+    result.append(compareSymbol);
+    result.append(", value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //StringCompareImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -305,3 +614,4 @@ public class StringCompareImpl extends CompareImpl implements StringCompare
   }
 
 } //StringCompareImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableDeclarationImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableDeclarationImpl.java
index 135d78966071cd03f669062f70609a5d499a7b16..70d4afb52c23adff43516ac84143c5f38ba8459f 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableDeclarationImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableDeclarationImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Variable Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableDeclarationImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableDeclarationImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StringVariableDeclarationImpl extends VariableDeclarationImpl implements StringVariableDeclaration
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected StringVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final String VALUE_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected String value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected StringVariableDeclarationImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.STRING_VARIABLE_DECLARATION;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (StringVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public StringVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(StringVariable newKey)
+  {
+    StringVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(String newValue)
+  {
+    String oldValue = value;
+    value = newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__KEY:
+        setKey((StringVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__VALUE:
+        setValue((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__KEY:
+        setKey((StringVariable)null);
+        return;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION__VALUE:
+        return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //StringVariableDeclarationImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class StringVariableDeclarationImpl extends VariableDeclarationImpl imple
   }
 
 } //StringVariableDeclarationImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableEqualsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableEqualsImpl.java
index afc74d5ee662609214355c0c10ed28064ea70aef..96cb885a96d74572aed084c42d32845f2770902d 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableEqualsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableEqualsImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Variable Equals</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableEqualsImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableEqualsImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StringVariableEqualsImpl extends VariableEqualsImpl implements StringVariableEquals
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected StringVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final String VALUE_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected String value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected StringVariableEqualsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.STRING_VARIABLE_EQUALS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (StringVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public StringVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(StringVariable newKey)
+  {
+    StringVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(String newValue)
+  {
+    String oldValue = value;
+    value = newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__KEY:
+        setKey((StringVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__VALUE:
+        setValue((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__KEY:
+        setKey((StringVariable)null);
+        return;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS__VALUE:
+        return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //StringVariableEqualsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class StringVariableEqualsImpl extends VariableEqualsImpl implements Stri
   }
 
 } //StringVariableEqualsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableImpl.java
index 06c87e9bf8b8d11d7a46a1ba7df1248f23d70b21..afc4264253575ce3d428c12d7fd8e1b0000682e4 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableImpl.java
@@ -1,3 +1,168 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableImpl#getProposals <em>Proposals</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StringVariableImpl extends VariableImpl implements StringVariable
+{
+  /**
+   * The cached value of the '{@link #getProposals() <em>Proposals</em>}' attribute list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getProposals()
+   * @generated
+   * @ordered
+   */
+  protected EList<String> proposals;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected StringVariableImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.STRING_VARIABLE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<String> getProposals()
+  {
+    if (proposals == null)
+    {
+      proposals = new EDataTypeEList<String>(String.class, this, TestgeneratorDSLPackage.STRING_VARIABLE__PROPOSALS);
+    }
+    return proposals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE__PROPOSALS:
+        return getProposals();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE__PROPOSALS:
+        getProposals().clear();
+        getProposals().addAll((Collection<? extends String>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE__PROPOSALS:
+        getProposals().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE__PROPOSALS:
+        return proposals != null && !proposals.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (proposals: ");
+    result.append(proposals);
+    result.append(')');
+    return result.toString();
+  }
+
+} //StringVariableImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -161,3 +326,4 @@ public class StringVariableImpl extends VariableImpl implements StringVariable
   }
 
 } //StringVariableImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableNotEqualsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableNotEqualsImpl.java
index a931bc88d3f2884c1318b4305104dd411314ffa2..34b8c611983f1cb1c809c56ba3dbb0a8425cea6b 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableNotEqualsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/StringVariableNotEqualsImpl.java
@@ -1,3 +1,253 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Variable Not Equals</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableNotEqualsImpl#getKey <em>Key</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.StringVariableNotEqualsImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StringVariableNotEqualsImpl extends VariableNotEqualsImpl implements StringVariableNotEquals
+{
+  /**
+   * The cached value of the '{@link #getKey() <em>Key</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getKey()
+   * @generated
+   * @ordered
+   */
+  protected StringVariable key;
+
+  /**
+   * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected static final String VALUE_EDEFAULT = null;
+
+  /**
+   * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getValue()
+   * @generated
+   * @ordered
+   */
+  protected String value = VALUE_EDEFAULT;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected StringVariableNotEqualsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.STRING_VARIABLE_NOT_EQUALS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringVariable getKey()
+  {
+    if (key != null && key.eIsProxy())
+    {
+      InternalEObject oldKey = (InternalEObject)key;
+      key = (StringVariable)eResolveProxy(oldKey);
+      if (key != oldKey)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__KEY, oldKey, key));
+      }
+    }
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public StringVariable basicGetKey()
+  {
+    return key;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setKey(StringVariable newKey)
+  {
+    StringVariable oldKey = key;
+    key = newKey;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__KEY, oldKey, key));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String getValue()
+  {
+    return value;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setValue(String newValue)
+  {
+    String oldValue = value;
+    value = newValue;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__VALUE, oldValue, value));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__KEY:
+        if (resolve) return getKey();
+        return basicGetKey();
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__VALUE:
+        return getValue();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__KEY:
+        setKey((StringVariable)newValue);
+        return;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__VALUE:
+        setValue((String)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__KEY:
+        setKey((StringVariable)null);
+        return;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__VALUE:
+        setValue(VALUE_EDEFAULT);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__KEY:
+        return key != null;
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS__VALUE:
+        return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (value: ");
+    result.append(value);
+    result.append(')');
+    return result.toString();
+  }
+
+} //StringVariableNotEqualsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -246,3 +496,4 @@ public class StringVariableNotEqualsImpl extends VariableNotEqualsImpl implement
   }
 
 } //StringVariableNotEqualsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestImpl.java
index 21ce6a65aba2adcf3c306343eca6a4cdd1b4d2db..090eae1db9a10747a23beadf19792a5492608188 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestImpl.java
@@ -1,3 +1,436 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Test</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl#getFlowReference <em>Flow Reference</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl#getPriority <em>Priority</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl#getDeclarations <em>Declarations</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl#getEndCheck <em>End Check</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.TestImpl#getMocks <em>Mocks</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TestImpl extends DeclarationImpl implements Test
+{
+  /**
+   * The cached value of the '{@link #getFlowReference() <em>Flow Reference</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getFlowReference()
+   * @generated
+   * @ordered
+   */
+  protected FlowReference flowReference;
+
+  /**
+   * The default value of the '{@link #getPriority() <em>Priority</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getPriority()
+   * @generated
+   * @ordered
+   */
+  protected static final int PRIORITY_EDEFAULT = 0;
+
+  /**
+   * The cached value of the '{@link #getPriority() <em>Priority</em>}' attribute.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getPriority()
+   * @generated
+   * @ordered
+   */
+  protected int priority = PRIORITY_EDEFAULT;
+
+  /**
+   * The cached value of the '{@link #getDeclarations() <em>Declarations</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getDeclarations()
+   * @generated
+   * @ordered
+   */
+  protected EList<VariableDeclarations> declarations;
+
+  /**
+   * The cached value of the '{@link #getEndCheck() <em>End Check</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getEndCheck()
+   * @generated
+   * @ordered
+   */
+  protected EndChecks endCheck;
+
+  /**
+   * The cached value of the '{@link #getMocks() <em>Mocks</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getMocks()
+   * @generated
+   * @ordered
+   */
+  protected EList<MockReference> mocks;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected TestImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.TEST;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public FlowReference getFlowReference()
+  {
+    return flowReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetFlowReference(FlowReference newFlowReference, NotificationChain msgs)
+  {
+    FlowReference oldFlowReference = flowReference;
+    flowReference = newFlowReference;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.TEST__FLOW_REFERENCE, oldFlowReference, newFlowReference);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setFlowReference(FlowReference newFlowReference)
+  {
+    if (newFlowReference != flowReference)
+    {
+      NotificationChain msgs = null;
+      if (flowReference != null)
+        msgs = ((InternalEObject)flowReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.TEST__FLOW_REFERENCE, null, msgs);
+      if (newFlowReference != null)
+        msgs = ((InternalEObject)newFlowReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.TEST__FLOW_REFERENCE, null, msgs);
+      msgs = basicSetFlowReference(newFlowReference, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.TEST__FLOW_REFERENCE, newFlowReference, newFlowReference));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public int getPriority()
+  {
+    return priority;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setPriority(int newPriority)
+  {
+    int oldPriority = priority;
+    priority = newPriority;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.TEST__PRIORITY, oldPriority, priority));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<VariableDeclarations> getDeclarations()
+  {
+    if (declarations == null)
+    {
+      declarations = new EObjectContainmentEList<VariableDeclarations>(VariableDeclarations.class, this, TestgeneratorDSLPackage.TEST__DECLARATIONS);
+    }
+    return declarations;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EndChecks getEndCheck()
+  {
+    return endCheck;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetEndCheck(EndChecks newEndCheck, NotificationChain msgs)
+  {
+    EndChecks oldEndCheck = endCheck;
+    endCheck = newEndCheck;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.TEST__END_CHECK, oldEndCheck, newEndCheck);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setEndCheck(EndChecks newEndCheck)
+  {
+    if (newEndCheck != endCheck)
+    {
+      NotificationChain msgs = null;
+      if (endCheck != null)
+        msgs = ((InternalEObject)endCheck).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.TEST__END_CHECK, null, msgs);
+      if (newEndCheck != null)
+        msgs = ((InternalEObject)newEndCheck).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.TEST__END_CHECK, null, msgs);
+      msgs = basicSetEndCheck(newEndCheck, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.TEST__END_CHECK, newEndCheck, newEndCheck));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<MockReference> getMocks()
+  {
+    if (mocks == null)
+    {
+      mocks = new EObjectContainmentEList<MockReference>(MockReference.class, this, TestgeneratorDSLPackage.TEST__MOCKS);
+    }
+    return mocks;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.TEST__FLOW_REFERENCE:
+        return basicSetFlowReference(null, msgs);
+      case TestgeneratorDSLPackage.TEST__DECLARATIONS:
+        return ((InternalEList<?>)getDeclarations()).basicRemove(otherEnd, msgs);
+      case TestgeneratorDSLPackage.TEST__END_CHECK:
+        return basicSetEndCheck(null, msgs);
+      case TestgeneratorDSLPackage.TEST__MOCKS:
+        return ((InternalEList<?>)getMocks()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.TEST__FLOW_REFERENCE:
+        return getFlowReference();
+      case TestgeneratorDSLPackage.TEST__PRIORITY:
+        return getPriority();
+      case TestgeneratorDSLPackage.TEST__DECLARATIONS:
+        return getDeclarations();
+      case TestgeneratorDSLPackage.TEST__END_CHECK:
+        return getEndCheck();
+      case TestgeneratorDSLPackage.TEST__MOCKS:
+        return getMocks();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.TEST__FLOW_REFERENCE:
+        setFlowReference((FlowReference)newValue);
+        return;
+      case TestgeneratorDSLPackage.TEST__PRIORITY:
+        setPriority((Integer)newValue);
+        return;
+      case TestgeneratorDSLPackage.TEST__DECLARATIONS:
+        getDeclarations().clear();
+        getDeclarations().addAll((Collection<? extends VariableDeclarations>)newValue);
+        return;
+      case TestgeneratorDSLPackage.TEST__END_CHECK:
+        setEndCheck((EndChecks)newValue);
+        return;
+      case TestgeneratorDSLPackage.TEST__MOCKS:
+        getMocks().clear();
+        getMocks().addAll((Collection<? extends MockReference>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.TEST__FLOW_REFERENCE:
+        setFlowReference((FlowReference)null);
+        return;
+      case TestgeneratorDSLPackage.TEST__PRIORITY:
+        setPriority(PRIORITY_EDEFAULT);
+        return;
+      case TestgeneratorDSLPackage.TEST__DECLARATIONS:
+        getDeclarations().clear();
+        return;
+      case TestgeneratorDSLPackage.TEST__END_CHECK:
+        setEndCheck((EndChecks)null);
+        return;
+      case TestgeneratorDSLPackage.TEST__MOCKS:
+        getMocks().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.TEST__FLOW_REFERENCE:
+        return flowReference != null;
+      case TestgeneratorDSLPackage.TEST__PRIORITY:
+        return priority != PRIORITY_EDEFAULT;
+      case TestgeneratorDSLPackage.TEST__DECLARATIONS:
+        return declarations != null && !declarations.isEmpty();
+      case TestgeneratorDSLPackage.TEST__END_CHECK:
+        return endCheck != null;
+      case TestgeneratorDSLPackage.TEST__MOCKS:
+        return mocks != null && !mocks.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String toString()
+  {
+    if (eIsProxy()) return super.toString();
+
+    StringBuilder result = new StringBuilder(super.toString());
+    result.append(" (priority: ");
+    result.append(priority);
+    result.append(')');
+    return result.toString();
+  }
+
+} //TestImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -356,3 +789,4 @@ public class TestImpl extends DeclarationImpl implements Test
   }
 
 } //TestImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestgeneratorDSLFactoryImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestgeneratorDSLFactoryImpl.java
index 4b285df682af003a61832eb841fb6aefd6462ac3..e243cb51896cf74454d40b2bb4aa7a0b79742085 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestgeneratorDSLFactoryImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestgeneratorDSLFactoryImpl.java
@@ -1,3 +1,996 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Compare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Declaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Loop;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Mock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Model;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLFactory;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Variable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TestgeneratorDSLFactoryImpl extends EFactoryImpl implements TestgeneratorDSLFactory
+{
+  /**
+   * Creates the default factory implementation.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public static TestgeneratorDSLFactory init()
+  {
+    try
+    {
+      TestgeneratorDSLFactory theTestgeneratorDSLFactory = (TestgeneratorDSLFactory)EPackage.Registry.INSTANCE.getEFactory(TestgeneratorDSLPackage.eNS_URI);
+      if (theTestgeneratorDSLFactory != null)
+      {
+        return theTestgeneratorDSLFactory;
+      }
+    }
+    catch (Exception exception)
+    {
+      EcorePlugin.INSTANCE.log(exception);
+    }
+    return new TestgeneratorDSLFactoryImpl();
+  }
+
+  /**
+   * Creates an instance of the factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public TestgeneratorDSLFactoryImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EObject create(EClass eClass)
+  {
+    switch (eClass.getClassifierID())
+    {
+      case TestgeneratorDSLPackage.MODEL: return createModel();
+      case TestgeneratorDSLPackage.DECLARATION: return createDeclaration();
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM: return createBPMNDiagram();
+      case TestgeneratorDSLPackage.BPMN_REFERENCE: return createBPMNReference();
+      case TestgeneratorDSLPackage.FLOW_ELEMENT: return createFlowElement();
+      case TestgeneratorDSLPackage.START_FLOW_ELEMENT: return createStartFlowElement();
+      case TestgeneratorDSLPackage.END_FLOW_ELEMENT: return createEndFlowElement();
+      case TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT: return createUserTaskFlowElement();
+      case TestgeneratorDSLPackage.MANUAL_TASK_FLOW_ELEMENT: return createManualTaskFlowElement();
+      case TestgeneratorDSLPackage.SCRIPT_TASK_FLOW_ELEMENT: return createScriptTaskFlowElement();
+      case TestgeneratorDSLPackage.SERVICE_TASK_FLOW_ELEMENT: return createServiceTaskFlowElement();
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_FLOW_ELEMENT: return createDelegateServiceTaskFlowElement();
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT: return createExternalServiceTaskFlowElement();
+      case TestgeneratorDSLPackage.BUSINESS_RULE_TASK_FLOW_ELEMENT: return createBusinessRuleTaskFlowElement();
+      case TestgeneratorDSLPackage.GATEWAY_FLOW_ELEMENT: return createGatewayFlowElement();
+      case TestgeneratorDSLPackage.SEQUENCE_FLOW_ELEMENT: return createSequenceFlowElement();
+      case TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE: return createFlowElementReference();
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE: return createDelegateServiceTaskReference();
+      case TestgeneratorDSLPackage.EXTERNAL_TOPIC: return createExternalTopic();
+      case TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE: return createExternalTopicReference();
+      case TestgeneratorDSLPackage.VARIABLE: return createVariable();
+      case TestgeneratorDSLPackage.VARIABLE_REFERENCE: return createVariableReference();
+      case TestgeneratorDSLPackage.STRING_VARIABLE: return createStringVariable();
+      case TestgeneratorDSLPackage.INT_VARIABLE: return createIntVariable();
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE: return createBooleanVariable();
+      case TestgeneratorDSLPackage.LOOP: return createLoop();
+      case TestgeneratorDSLPackage.FLOW: return createFlow();
+      case TestgeneratorDSLPackage.FLOW_REFERENCE: return createFlowReference();
+      case TestgeneratorDSLPackage.TEST: return createTest();
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS: return createVariableDeclarations();
+      case TestgeneratorDSLPackage.END_CHECKS: return createEndChecks();
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATION: return createVariableDeclaration();
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION: return createStringVariableDeclaration();
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION: return createIntVariableDeclaration();
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION: return createBooleanVariableDeclaration();
+      case TestgeneratorDSLPackage.END_CHECK: return createEndCheck();
+      case TestgeneratorDSLPackage.VARIABLE_EQUALS: return createVariableEquals();
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS: return createStringVariableEquals();
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS: return createIntVariableEquals();
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS: return createBooleanVariableEquals();
+      case TestgeneratorDSLPackage.VARIABLE_NOT_EQUALS: return createVariableNotEquals();
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS: return createStringVariableNotEquals();
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS: return createIntVariableNotEquals();
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS: return createBooleanVariableNotEquals();
+      case TestgeneratorDSLPackage.MOCK: return createMock();
+      case TestgeneratorDSLPackage.MOCK_REFERENCE: return createMockReference();
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK: return createExternalServiceMock();
+      case TestgeneratorDSLPackage.DELEGATE_MOCK: return createDelegateMock();
+      case TestgeneratorDSLPackage.MOCKING_RULE: return createMockingRule();
+      case TestgeneratorDSLPackage.MANUAL_MOCK: return createManualMock();
+      case TestgeneratorDSLPackage.COMPARE: return createCompare();
+      case TestgeneratorDSLPackage.STRING_COMPARE: return createStringCompare();
+      case TestgeneratorDSLPackage.INT_COMPARE: return createIntCompare();
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE: return createBooleanCompare();
+      default:
+        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+    }
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object createFromString(EDataType eDataType, String initialValue)
+  {
+    switch (eDataType.getClassifierID())
+    {
+      case TestgeneratorDSLPackage.BOOLEAN:
+        return createBooleanFromString(eDataType, initialValue);
+      case TestgeneratorDSLPackage.STRING_COMPARE_SYMBOL:
+        return createStringCompareSymbolFromString(eDataType, initialValue);
+      case TestgeneratorDSLPackage.INT_COMPARE_SYMBOL:
+        return createIntCompareSymbolFromString(eDataType, initialValue);
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE_SYMBOL:
+        return createBooleanCompareSymbolFromString(eDataType, initialValue);
+      default:
+        throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+    }
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public String convertToString(EDataType eDataType, Object instanceValue)
+  {
+    switch (eDataType.getClassifierID())
+    {
+      case TestgeneratorDSLPackage.BOOLEAN:
+        return convertBooleanToString(eDataType, instanceValue);
+      case TestgeneratorDSLPackage.STRING_COMPARE_SYMBOL:
+        return convertStringCompareSymbolToString(eDataType, instanceValue);
+      case TestgeneratorDSLPackage.INT_COMPARE_SYMBOL:
+        return convertIntCompareSymbolToString(eDataType, instanceValue);
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE_SYMBOL:
+        return convertBooleanCompareSymbolToString(eDataType, instanceValue);
+      default:
+        throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+    }
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Model createModel()
+  {
+    ModelImpl model = new ModelImpl();
+    return model;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Declaration createDeclaration()
+  {
+    DeclarationImpl declaration = new DeclarationImpl();
+    return declaration;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BPMNDiagram createBPMNDiagram()
+  {
+    BPMNDiagramImpl bpmnDiagram = new BPMNDiagramImpl();
+    return bpmnDiagram;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BPMNReference createBPMNReference()
+  {
+    BPMNReferenceImpl bpmnReference = new BPMNReferenceImpl();
+    return bpmnReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public FlowElement createFlowElement()
+  {
+    FlowElementImpl flowElement = new FlowElementImpl();
+    return flowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StartFlowElement createStartFlowElement()
+  {
+    StartFlowElementImpl startFlowElement = new StartFlowElementImpl();
+    return startFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EndFlowElement createEndFlowElement()
+  {
+    EndFlowElementImpl endFlowElement = new EndFlowElementImpl();
+    return endFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public UserTaskFlowElement createUserTaskFlowElement()
+  {
+    UserTaskFlowElementImpl userTaskFlowElement = new UserTaskFlowElementImpl();
+    return userTaskFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ManualTaskFlowElement createManualTaskFlowElement()
+  {
+    ManualTaskFlowElementImpl manualTaskFlowElement = new ManualTaskFlowElementImpl();
+    return manualTaskFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ScriptTaskFlowElement createScriptTaskFlowElement()
+  {
+    ScriptTaskFlowElementImpl scriptTaskFlowElement = new ScriptTaskFlowElementImpl();
+    return scriptTaskFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ServiceTaskFlowElement createServiceTaskFlowElement()
+  {
+    ServiceTaskFlowElementImpl serviceTaskFlowElement = new ServiceTaskFlowElementImpl();
+    return serviceTaskFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public DelegateServiceTaskFlowElement createDelegateServiceTaskFlowElement()
+  {
+    DelegateServiceTaskFlowElementImpl delegateServiceTaskFlowElement = new DelegateServiceTaskFlowElementImpl();
+    return delegateServiceTaskFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ExternalServiceTaskFlowElement createExternalServiceTaskFlowElement()
+  {
+    ExternalServiceTaskFlowElementImpl externalServiceTaskFlowElement = new ExternalServiceTaskFlowElementImpl();
+    return externalServiceTaskFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BusinessRuleTaskFlowElement createBusinessRuleTaskFlowElement()
+  {
+    BusinessRuleTaskFlowElementImpl businessRuleTaskFlowElement = new BusinessRuleTaskFlowElementImpl();
+    return businessRuleTaskFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public GatewayFlowElement createGatewayFlowElement()
+  {
+    GatewayFlowElementImpl gatewayFlowElement = new GatewayFlowElementImpl();
+    return gatewayFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public SequenceFlowElement createSequenceFlowElement()
+  {
+    SequenceFlowElementImpl sequenceFlowElement = new SequenceFlowElementImpl();
+    return sequenceFlowElement;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public FlowElementReference createFlowElementReference()
+  {
+    FlowElementReferenceImpl flowElementReference = new FlowElementReferenceImpl();
+    return flowElementReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public DelegateServiceTaskReference createDelegateServiceTaskReference()
+  {
+    DelegateServiceTaskReferenceImpl delegateServiceTaskReference = new DelegateServiceTaskReferenceImpl();
+    return delegateServiceTaskReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ExternalTopic createExternalTopic()
+  {
+    ExternalTopicImpl externalTopic = new ExternalTopicImpl();
+    return externalTopic;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ExternalTopicReference createExternalTopicReference()
+  {
+    ExternalTopicReferenceImpl externalTopicReference = new ExternalTopicReferenceImpl();
+    return externalTopicReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Variable createVariable()
+  {
+    VariableImpl variable = new VariableImpl();
+    return variable;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public VariableReference createVariableReference()
+  {
+    VariableReferenceImpl variableReference = new VariableReferenceImpl();
+    return variableReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringVariable createStringVariable()
+  {
+    StringVariableImpl stringVariable = new StringVariableImpl();
+    return stringVariable;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntVariable createIntVariable()
+  {
+    IntVariableImpl intVariable = new IntVariableImpl();
+    return intVariable;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanVariable createBooleanVariable()
+  {
+    BooleanVariableImpl booleanVariable = new BooleanVariableImpl();
+    return booleanVariable;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Loop createLoop()
+  {
+    LoopImpl loop = new LoopImpl();
+    return loop;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Flow createFlow()
+  {
+    FlowImpl flow = new FlowImpl();
+    return flow;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public FlowReference createFlowReference()
+  {
+    FlowReferenceImpl flowReference = new FlowReferenceImpl();
+    return flowReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Test createTest()
+  {
+    TestImpl test = new TestImpl();
+    return test;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public VariableDeclarations createVariableDeclarations()
+  {
+    VariableDeclarationsImpl variableDeclarations = new VariableDeclarationsImpl();
+    return variableDeclarations;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EndChecks createEndChecks()
+  {
+    EndChecksImpl endChecks = new EndChecksImpl();
+    return endChecks;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public VariableDeclaration createVariableDeclaration()
+  {
+    VariableDeclarationImpl variableDeclaration = new VariableDeclarationImpl();
+    return variableDeclaration;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringVariableDeclaration createStringVariableDeclaration()
+  {
+    StringVariableDeclarationImpl stringVariableDeclaration = new StringVariableDeclarationImpl();
+    return stringVariableDeclaration;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntVariableDeclaration createIntVariableDeclaration()
+  {
+    IntVariableDeclarationImpl intVariableDeclaration = new IntVariableDeclarationImpl();
+    return intVariableDeclaration;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanVariableDeclaration createBooleanVariableDeclaration()
+  {
+    BooleanVariableDeclarationImpl booleanVariableDeclaration = new BooleanVariableDeclarationImpl();
+    return booleanVariableDeclaration;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EndCheck createEndCheck()
+  {
+    EndCheckImpl endCheck = new EndCheckImpl();
+    return endCheck;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public VariableEquals createVariableEquals()
+  {
+    VariableEqualsImpl variableEquals = new VariableEqualsImpl();
+    return variableEquals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringVariableEquals createStringVariableEquals()
+  {
+    StringVariableEqualsImpl stringVariableEquals = new StringVariableEqualsImpl();
+    return stringVariableEquals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntVariableEquals createIntVariableEquals()
+  {
+    IntVariableEqualsImpl intVariableEquals = new IntVariableEqualsImpl();
+    return intVariableEquals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanVariableEquals createBooleanVariableEquals()
+  {
+    BooleanVariableEqualsImpl booleanVariableEquals = new BooleanVariableEqualsImpl();
+    return booleanVariableEquals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public VariableNotEquals createVariableNotEquals()
+  {
+    VariableNotEqualsImpl variableNotEquals = new VariableNotEqualsImpl();
+    return variableNotEquals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringVariableNotEquals createStringVariableNotEquals()
+  {
+    StringVariableNotEqualsImpl stringVariableNotEquals = new StringVariableNotEqualsImpl();
+    return stringVariableNotEquals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntVariableNotEquals createIntVariableNotEquals()
+  {
+    IntVariableNotEqualsImpl intVariableNotEquals = new IntVariableNotEqualsImpl();
+    return intVariableNotEquals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanVariableNotEquals createBooleanVariableNotEquals()
+  {
+    BooleanVariableNotEqualsImpl booleanVariableNotEquals = new BooleanVariableNotEqualsImpl();
+    return booleanVariableNotEquals;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Mock createMock()
+  {
+    MockImpl mock = new MockImpl();
+    return mock;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public MockReference createMockReference()
+  {
+    MockReferenceImpl mockReference = new MockReferenceImpl();
+    return mockReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ExternalServiceMock createExternalServiceMock()
+  {
+    ExternalServiceMockImpl externalServiceMock = new ExternalServiceMockImpl();
+    return externalServiceMock;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public DelegateMock createDelegateMock()
+  {
+    DelegateMockImpl delegateMock = new DelegateMockImpl();
+    return delegateMock;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public MockingRule createMockingRule()
+  {
+    MockingRuleImpl mockingRule = new MockingRuleImpl();
+    return mockingRule;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public ManualMock createManualMock()
+  {
+    ManualMockImpl manualMock = new ManualMockImpl();
+    return manualMock;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Compare createCompare()
+  {
+    CompareImpl compare = new CompareImpl();
+    return compare;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public StringCompare createStringCompare()
+  {
+    StringCompareImpl stringCompare = new StringCompareImpl();
+    return stringCompare;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public IntCompare createIntCompare()
+  {
+    IntCompareImpl intCompare = new IntCompareImpl();
+    return intCompare;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public BooleanCompare createBooleanCompare()
+  {
+    BooleanCompareImpl booleanCompare = new BooleanCompareImpl();
+    return booleanCompare;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public de.fhmuenster.masterthesis.testgeneratorDSL.Boolean createBooleanFromString(EDataType eDataType, String initialValue)
+  {
+    de.fhmuenster.masterthesis.testgeneratorDSL.Boolean result = de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertBooleanToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public StringCompareSymbol createStringCompareSymbolFromString(EDataType eDataType, String initialValue)
+  {
+    StringCompareSymbol result = StringCompareSymbol.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertStringCompareSymbolToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public IntCompareSymbol createIntCompareSymbolFromString(EDataType eDataType, String initialValue)
+  {
+    IntCompareSymbol result = IntCompareSymbol.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertIntCompareSymbolToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public BooleanCompareSymbol createBooleanCompareSymbolFromString(EDataType eDataType, String initialValue)
+  {
+    BooleanCompareSymbol result = BooleanCompareSymbol.get(initialValue);
+    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+    return result;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public String convertBooleanCompareSymbolToString(EDataType eDataType, Object instanceValue)
+  {
+    return instanceValue == null ? null : instanceValue.toString();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public TestgeneratorDSLPackage getTestgeneratorDSLPackage()
+  {
+    return (TestgeneratorDSLPackage)getEPackage();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @deprecated
+   * @generated
+   */
+  @Deprecated
+  public static TestgeneratorDSLPackage getPackage()
+  {
+    return TestgeneratorDSLPackage.eINSTANCE;
+  }
+
+} //TestgeneratorDSLFactoryImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -989,3 +1982,4 @@ public class TestgeneratorDSLFactoryImpl extends EFactoryImpl implements Testgen
   }
 
 } //TestgeneratorDSLFactoryImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestgeneratorDSLPackageImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestgeneratorDSLPackageImpl.java
index ddba9a6a7b62e018861c538146c55859251d95a1..cfd3f163decfb310b960585d278a197f0ec7ecde 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestgeneratorDSLPackageImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/TestgeneratorDSLPackageImpl.java
@@ -1,3 +1,2517 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Compare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Declaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Loop;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Mock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Model;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompareSymbol;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLFactory;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Variable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TestgeneratorDSLPackageImpl extends EPackageImpl implements TestgeneratorDSLPackage
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass modelEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass declarationEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass bpmnDiagramEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass bpmnReferenceEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass flowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass startFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass endFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass userTaskFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass manualTaskFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass scriptTaskFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass serviceTaskFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass delegateServiceTaskFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass externalServiceTaskFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass businessRuleTaskFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass gatewayFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass sequenceFlowElementEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass flowElementReferenceEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass delegateServiceTaskReferenceEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass externalTopicEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass externalTopicReferenceEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass variableEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass variableReferenceEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass stringVariableEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass intVariableEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass booleanVariableEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass loopEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass flowEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass flowReferenceEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass testEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass variableDeclarationsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass endChecksEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass variableDeclarationEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass stringVariableDeclarationEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass intVariableDeclarationEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass booleanVariableDeclarationEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass endCheckEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass variableEqualsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass stringVariableEqualsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass intVariableEqualsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass booleanVariableEqualsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass variableNotEqualsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass stringVariableNotEqualsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass intVariableNotEqualsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass booleanVariableNotEqualsEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass mockEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass mockReferenceEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass externalServiceMockEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass delegateMockEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass mockingRuleEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass manualMockEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass compareEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass stringCompareEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass intCompareEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EClass booleanCompareEClass = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum booleanEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum stringCompareSymbolEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum intCompareSymbolEEnum = null;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private EEnum booleanCompareSymbolEEnum = null;
+
+  /**
+   * Creates an instance of the model <b>Package</b>, registered with
+   * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+   * package URI value.
+   * <p>Note: the correct way to create the package is via the static
+   * factory method {@link #init init()}, which also performs
+   * initialization of the package, or returns the registered package,
+   * if one already exists.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see org.eclipse.emf.ecore.EPackage.Registry
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage#eNS_URI
+   * @see #init()
+   * @generated
+   */
+  private TestgeneratorDSLPackageImpl()
+  {
+    super(eNS_URI, TestgeneratorDSLFactory.eINSTANCE);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private static boolean isInited = false;
+
+  /**
+   * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+   *
+   * <p>This method is used to initialize {@link TestgeneratorDSLPackage#eINSTANCE} when that field is accessed.
+   * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #eNS_URI
+   * @see #createPackageContents()
+   * @see #initializePackageContents()
+   * @generated
+   */
+  public static TestgeneratorDSLPackage init()
+  {
+    if (isInited) return (TestgeneratorDSLPackage)EPackage.Registry.INSTANCE.getEPackage(TestgeneratorDSLPackage.eNS_URI);
+
+    // Obtain or create and register package
+    Object registeredTestgeneratorDSLPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+    TestgeneratorDSLPackageImpl theTestgeneratorDSLPackage = registeredTestgeneratorDSLPackage instanceof TestgeneratorDSLPackageImpl ? (TestgeneratorDSLPackageImpl)registeredTestgeneratorDSLPackage : new TestgeneratorDSLPackageImpl();
+
+    isInited = true;
+
+    // Create package meta-data objects
+    theTestgeneratorDSLPackage.createPackageContents();
+
+    // Initialize created meta-data
+    theTestgeneratorDSLPackage.initializePackageContents();
+
+    // Mark meta-data to indicate it can't be changed
+    theTestgeneratorDSLPackage.freeze();
+
+    // Update the registry and return the package
+    EPackage.Registry.INSTANCE.put(TestgeneratorDSLPackage.eNS_URI, theTestgeneratorDSLPackage);
+    return theTestgeneratorDSLPackage;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getModel()
+  {
+    return modelEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getModel_Declarations()
+  {
+    return (EReference)modelEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getDeclaration()
+  {
+    return declarationEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getDeclaration_Name()
+  {
+    return (EAttribute)declarationEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getBPMNDiagram()
+  {
+    return bpmnDiagramEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBPMNDiagram_Testpackage()
+  {
+    return (EAttribute)bpmnDiagramEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBPMNDiagram_Bpmn()
+  {
+    return (EAttribute)bpmnDiagramEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBPMNDiagram_Key()
+  {
+    return (EAttribute)bpmnDiagramEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBPMNDiagram_Dmn()
+  {
+    return (EAttribute)bpmnDiagramEClass.getEStructuralFeatures().get(3);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBPMNDiagram_Embedded()
+  {
+    return (EAttribute)bpmnDiagramEClass.getEStructuralFeatures().get(4);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getBPMNReference()
+  {
+    return bpmnReferenceEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getBPMNReference_Ref()
+  {
+    return (EReference)bpmnReferenceEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getFlowElement()
+  {
+    return flowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getStartFlowElement()
+  {
+    return startFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getStartFlowElement_InputVariables()
+  {
+    return (EReference)startFlowElementEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getEndFlowElement()
+  {
+    return endFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getUserTaskFlowElement()
+  {
+    return userTaskFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getUserTaskFlowElement_InputVariables()
+  {
+    return (EReference)userTaskFlowElementEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getManualTaskFlowElement()
+  {
+    return manualTaskFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getScriptTaskFlowElement()
+  {
+    return scriptTaskFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getServiceTaskFlowElement()
+  {
+    return serviceTaskFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getDelegateServiceTaskFlowElement()
+  {
+    return delegateServiceTaskFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getDelegateServiceTaskFlowElement_Delegate()
+  {
+    return (EAttribute)delegateServiceTaskFlowElementEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getExternalServiceTaskFlowElement()
+  {
+    return externalServiceTaskFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getExternalServiceTaskFlowElement_ExternalTopic()
+  {
+    return (EReference)externalServiceTaskFlowElementEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getExternalServiceTaskFlowElement_HardcodedInputs()
+  {
+    return (EReference)externalServiceTaskFlowElementEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getBusinessRuleTaskFlowElement()
+  {
+    return businessRuleTaskFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getGatewayFlowElement()
+  {
+    return gatewayFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getSequenceFlowElement()
+  {
+    return sequenceFlowElementEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getSequenceFlowElement_Expression()
+  {
+    return (EAttribute)sequenceFlowElementEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getFlowElementReference()
+  {
+    return flowElementReferenceEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getFlowElementReference_Ref()
+  {
+    return (EReference)flowElementReferenceEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getDelegateServiceTaskReference()
+  {
+    return delegateServiceTaskReferenceEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getDelegateServiceTaskReference_Ref()
+  {
+    return (EReference)delegateServiceTaskReferenceEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getExternalTopic()
+  {
+    return externalTopicEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getExternalTopicReference()
+  {
+    return externalTopicReferenceEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getExternalTopicReference_Ref()
+  {
+    return (EReference)externalTopicReferenceEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getVariable()
+  {
+    return variableEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getVariableReference()
+  {
+    return variableReferenceEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getVariableReference_Ref()
+  {
+    return (EReference)variableReferenceEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getStringVariable()
+  {
+    return stringVariableEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getStringVariable_Proposals()
+  {
+    return (EAttribute)stringVariableEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getIntVariable()
+  {
+    return intVariableEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getIntVariable_Proposals()
+  {
+    return (EAttribute)intVariableEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getBooleanVariable()
+  {
+    return booleanVariableEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBooleanVariable_Proposals()
+  {
+    return (EAttribute)booleanVariableEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getLoop()
+  {
+    return loopEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getLoop_Start()
+  {
+    return (EAttribute)loopEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getLoop_Follower()
+  {
+    return (EAttribute)loopEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getLoop_End()
+  {
+    return (EAttribute)loopEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getLoop_Complexity()
+  {
+    return (EAttribute)loopEClass.getEStructuralFeatures().get(3);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getLoop_Frequencies()
+  {
+    return (EAttribute)loopEClass.getEStructuralFeatures().get(4);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getFlow()
+  {
+    return flowEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getFlow_BpmnReference()
+  {
+    return (EReference)flowEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getFlow_InclElements()
+  {
+    return (EReference)flowEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getFlow_ExclElements()
+  {
+    return (EReference)flowEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getFlowReference()
+  {
+    return flowReferenceEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getFlowReference_Ref()
+  {
+    return (EReference)flowReferenceEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getTest()
+  {
+    return testEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getTest_FlowReference()
+  {
+    return (EReference)testEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getTest_Priority()
+  {
+    return (EAttribute)testEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getTest_Declarations()
+  {
+    return (EReference)testEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getTest_EndCheck()
+  {
+    return (EReference)testEClass.getEStructuralFeatures().get(3);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getTest_Mocks()
+  {
+    return (EReference)testEClass.getEStructuralFeatures().get(4);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getVariableDeclarations()
+  {
+    return variableDeclarationsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getVariableDeclarations_TaskReference()
+  {
+    return (EReference)variableDeclarationsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getVariableDeclarations_Variables()
+  {
+    return (EReference)variableDeclarationsEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getEndChecks()
+  {
+    return endChecksEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getEndChecks_EndChecks()
+  {
+    return (EReference)endChecksEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getVariableDeclaration()
+  {
+    return variableDeclarationEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getStringVariableDeclaration()
+  {
+    return stringVariableDeclarationEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getStringVariableDeclaration_Key()
+  {
+    return (EReference)stringVariableDeclarationEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getStringVariableDeclaration_Value()
+  {
+    return (EAttribute)stringVariableDeclarationEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getIntVariableDeclaration()
+  {
+    return intVariableDeclarationEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getIntVariableDeclaration_Key()
+  {
+    return (EReference)intVariableDeclarationEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getIntVariableDeclaration_Value()
+  {
+    return (EAttribute)intVariableDeclarationEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getBooleanVariableDeclaration()
+  {
+    return booleanVariableDeclarationEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getBooleanVariableDeclaration_Key()
+  {
+    return (EReference)booleanVariableDeclarationEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBooleanVariableDeclaration_Value()
+  {
+    return (EAttribute)booleanVariableDeclarationEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getEndCheck()
+  {
+    return endCheckEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getVariableEquals()
+  {
+    return variableEqualsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getStringVariableEquals()
+  {
+    return stringVariableEqualsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getStringVariableEquals_Key()
+  {
+    return (EReference)stringVariableEqualsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getStringVariableEquals_Value()
+  {
+    return (EAttribute)stringVariableEqualsEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getIntVariableEquals()
+  {
+    return intVariableEqualsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getIntVariableEquals_Key()
+  {
+    return (EReference)intVariableEqualsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getIntVariableEquals_Value()
+  {
+    return (EAttribute)intVariableEqualsEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getBooleanVariableEquals()
+  {
+    return booleanVariableEqualsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getBooleanVariableEquals_Key()
+  {
+    return (EReference)booleanVariableEqualsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBooleanVariableEquals_Value()
+  {
+    return (EAttribute)booleanVariableEqualsEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getVariableNotEquals()
+  {
+    return variableNotEqualsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getStringVariableNotEquals()
+  {
+    return stringVariableNotEqualsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getStringVariableNotEquals_Key()
+  {
+    return (EReference)stringVariableNotEqualsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getStringVariableNotEquals_Value()
+  {
+    return (EAttribute)stringVariableNotEqualsEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getIntVariableNotEquals()
+  {
+    return intVariableNotEqualsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getIntVariableNotEquals_Key()
+  {
+    return (EReference)intVariableNotEqualsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getIntVariableNotEquals_Value()
+  {
+    return (EAttribute)intVariableNotEqualsEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getBooleanVariableNotEquals()
+  {
+    return booleanVariableNotEqualsEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getBooleanVariableNotEquals_Key()
+  {
+    return (EReference)booleanVariableNotEqualsEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBooleanVariableNotEquals_Value()
+  {
+    return (EAttribute)booleanVariableNotEqualsEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getMock()
+  {
+    return mockEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getMockReference()
+  {
+    return mockReferenceEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getMockReference_Ref()
+  {
+    return (EReference)mockReferenceEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getExternalServiceMock()
+  {
+    return externalServiceMockEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getExternalServiceMock_ExternalTopic()
+  {
+    return (EReference)externalServiceMockEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getExternalServiceMock_MockingRules()
+  {
+    return (EReference)externalServiceMockEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getDelegateMock()
+  {
+    return delegateMockEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getDelegateMock_ServiceTaskReference()
+  {
+    return (EReference)delegateMockEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getDelegateMock_DelegateClass()
+  {
+    return (EAttribute)delegateMockEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getDelegateMock_ManualMocks()
+  {
+    return (EReference)delegateMockEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getMockingRule()
+  {
+    return mockingRuleEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getMockingRule_Comparisons()
+  {
+    return (EReference)mockingRuleEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getMockingRule_Variables()
+  {
+    return (EReference)mockingRuleEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getManualMock()
+  {
+    return manualMockEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getManualMock_ServiceName()
+  {
+    return (EAttribute)manualMockEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getManualMock_Setter()
+  {
+    return (EAttribute)manualMockEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getCompare()
+  {
+    return compareEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getStringCompare()
+  {
+    return stringCompareEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getStringCompare_Key()
+  {
+    return (EReference)stringCompareEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getStringCompare_CompareSymbol()
+  {
+    return (EAttribute)stringCompareEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getStringCompare_Value()
+  {
+    return (EAttribute)stringCompareEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getIntCompare()
+  {
+    return intCompareEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getIntCompare_Key()
+  {
+    return (EReference)intCompareEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getIntCompare_CompareSymbol()
+  {
+    return (EAttribute)intCompareEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getIntCompare_Value()
+  {
+    return (EAttribute)intCompareEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EClass getBooleanCompare()
+  {
+    return booleanCompareEClass;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EReference getBooleanCompare_Key()
+  {
+    return (EReference)booleanCompareEClass.getEStructuralFeatures().get(0);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBooleanCompare_CompareSymbol()
+  {
+    return (EAttribute)booleanCompareEClass.getEStructuralFeatures().get(1);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EAttribute getBooleanCompare_Value()
+  {
+    return (EAttribute)booleanCompareEClass.getEStructuralFeatures().get(2);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EEnum getBoolean()
+  {
+    return booleanEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EEnum getStringCompareSymbol()
+  {
+    return stringCompareSymbolEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EEnum getIntCompareSymbol()
+  {
+    return intCompareSymbolEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EEnum getBooleanCompareSymbol()
+  {
+    return booleanCompareSymbolEEnum;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public TestgeneratorDSLFactory getTestgeneratorDSLFactory()
+  {
+    return (TestgeneratorDSLFactory)getEFactoryInstance();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private boolean isCreated = false;
+
+  /**
+   * Creates the meta-model objects for the package.  This method is
+   * guarded to have no affect on any invocation but its first.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void createPackageContents()
+  {
+    if (isCreated) return;
+    isCreated = true;
+
+    // Create classes and their features
+    modelEClass = createEClass(MODEL);
+    createEReference(modelEClass, MODEL__DECLARATIONS);
+
+    declarationEClass = createEClass(DECLARATION);
+    createEAttribute(declarationEClass, DECLARATION__NAME);
+
+    bpmnDiagramEClass = createEClass(BPMN_DIAGRAM);
+    createEAttribute(bpmnDiagramEClass, BPMN_DIAGRAM__TESTPACKAGE);
+    createEAttribute(bpmnDiagramEClass, BPMN_DIAGRAM__BPMN);
+    createEAttribute(bpmnDiagramEClass, BPMN_DIAGRAM__KEY);
+    createEAttribute(bpmnDiagramEClass, BPMN_DIAGRAM__DMN);
+    createEAttribute(bpmnDiagramEClass, BPMN_DIAGRAM__EMBEDDED);
+
+    bpmnReferenceEClass = createEClass(BPMN_REFERENCE);
+    createEReference(bpmnReferenceEClass, BPMN_REFERENCE__REF);
+
+    flowElementEClass = createEClass(FLOW_ELEMENT);
+
+    startFlowElementEClass = createEClass(START_FLOW_ELEMENT);
+    createEReference(startFlowElementEClass, START_FLOW_ELEMENT__INPUT_VARIABLES);
+
+    endFlowElementEClass = createEClass(END_FLOW_ELEMENT);
+
+    userTaskFlowElementEClass = createEClass(USER_TASK_FLOW_ELEMENT);
+    createEReference(userTaskFlowElementEClass, USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES);
+
+    manualTaskFlowElementEClass = createEClass(MANUAL_TASK_FLOW_ELEMENT);
+
+    scriptTaskFlowElementEClass = createEClass(SCRIPT_TASK_FLOW_ELEMENT);
+
+    serviceTaskFlowElementEClass = createEClass(SERVICE_TASK_FLOW_ELEMENT);
+
+    delegateServiceTaskFlowElementEClass = createEClass(DELEGATE_SERVICE_TASK_FLOW_ELEMENT);
+    createEAttribute(delegateServiceTaskFlowElementEClass, DELEGATE_SERVICE_TASK_FLOW_ELEMENT__DELEGATE);
+
+    externalServiceTaskFlowElementEClass = createEClass(EXTERNAL_SERVICE_TASK_FLOW_ELEMENT);
+    createEReference(externalServiceTaskFlowElementEClass, EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__EXTERNAL_TOPIC);
+    createEReference(externalServiceTaskFlowElementEClass, EXTERNAL_SERVICE_TASK_FLOW_ELEMENT__HARDCODED_INPUTS);
+
+    businessRuleTaskFlowElementEClass = createEClass(BUSINESS_RULE_TASK_FLOW_ELEMENT);
+
+    gatewayFlowElementEClass = createEClass(GATEWAY_FLOW_ELEMENT);
+
+    sequenceFlowElementEClass = createEClass(SEQUENCE_FLOW_ELEMENT);
+    createEAttribute(sequenceFlowElementEClass, SEQUENCE_FLOW_ELEMENT__EXPRESSION);
+
+    flowElementReferenceEClass = createEClass(FLOW_ELEMENT_REFERENCE);
+    createEReference(flowElementReferenceEClass, FLOW_ELEMENT_REFERENCE__REF);
+
+    delegateServiceTaskReferenceEClass = createEClass(DELEGATE_SERVICE_TASK_REFERENCE);
+    createEReference(delegateServiceTaskReferenceEClass, DELEGATE_SERVICE_TASK_REFERENCE__REF);
+
+    externalTopicEClass = createEClass(EXTERNAL_TOPIC);
+
+    externalTopicReferenceEClass = createEClass(EXTERNAL_TOPIC_REFERENCE);
+    createEReference(externalTopicReferenceEClass, EXTERNAL_TOPIC_REFERENCE__REF);
+
+    variableEClass = createEClass(VARIABLE);
+
+    variableReferenceEClass = createEClass(VARIABLE_REFERENCE);
+    createEReference(variableReferenceEClass, VARIABLE_REFERENCE__REF);
+
+    stringVariableEClass = createEClass(STRING_VARIABLE);
+    createEAttribute(stringVariableEClass, STRING_VARIABLE__PROPOSALS);
+
+    intVariableEClass = createEClass(INT_VARIABLE);
+    createEAttribute(intVariableEClass, INT_VARIABLE__PROPOSALS);
+
+    booleanVariableEClass = createEClass(BOOLEAN_VARIABLE);
+    createEAttribute(booleanVariableEClass, BOOLEAN_VARIABLE__PROPOSALS);
+
+    loopEClass = createEClass(LOOP);
+    createEAttribute(loopEClass, LOOP__START);
+    createEAttribute(loopEClass, LOOP__FOLLOWER);
+    createEAttribute(loopEClass, LOOP__END);
+    createEAttribute(loopEClass, LOOP__COMPLEXITY);
+    createEAttribute(loopEClass, LOOP__FREQUENCIES);
+
+    flowEClass = createEClass(FLOW);
+    createEReference(flowEClass, FLOW__BPMN_REFERENCE);
+    createEReference(flowEClass, FLOW__INCL_ELEMENTS);
+    createEReference(flowEClass, FLOW__EXCL_ELEMENTS);
+
+    flowReferenceEClass = createEClass(FLOW_REFERENCE);
+    createEReference(flowReferenceEClass, FLOW_REFERENCE__REF);
+
+    testEClass = createEClass(TEST);
+    createEReference(testEClass, TEST__FLOW_REFERENCE);
+    createEAttribute(testEClass, TEST__PRIORITY);
+    createEReference(testEClass, TEST__DECLARATIONS);
+    createEReference(testEClass, TEST__END_CHECK);
+    createEReference(testEClass, TEST__MOCKS);
+
+    variableDeclarationsEClass = createEClass(VARIABLE_DECLARATIONS);
+    createEReference(variableDeclarationsEClass, VARIABLE_DECLARATIONS__TASK_REFERENCE);
+    createEReference(variableDeclarationsEClass, VARIABLE_DECLARATIONS__VARIABLES);
+
+    endChecksEClass = createEClass(END_CHECKS);
+    createEReference(endChecksEClass, END_CHECKS__END_CHECKS);
+
+    variableDeclarationEClass = createEClass(VARIABLE_DECLARATION);
+
+    stringVariableDeclarationEClass = createEClass(STRING_VARIABLE_DECLARATION);
+    createEReference(stringVariableDeclarationEClass, STRING_VARIABLE_DECLARATION__KEY);
+    createEAttribute(stringVariableDeclarationEClass, STRING_VARIABLE_DECLARATION__VALUE);
+
+    intVariableDeclarationEClass = createEClass(INT_VARIABLE_DECLARATION);
+    createEReference(intVariableDeclarationEClass, INT_VARIABLE_DECLARATION__KEY);
+    createEAttribute(intVariableDeclarationEClass, INT_VARIABLE_DECLARATION__VALUE);
+
+    booleanVariableDeclarationEClass = createEClass(BOOLEAN_VARIABLE_DECLARATION);
+    createEReference(booleanVariableDeclarationEClass, BOOLEAN_VARIABLE_DECLARATION__KEY);
+    createEAttribute(booleanVariableDeclarationEClass, BOOLEAN_VARIABLE_DECLARATION__VALUE);
+
+    endCheckEClass = createEClass(END_CHECK);
+
+    variableEqualsEClass = createEClass(VARIABLE_EQUALS);
+
+    stringVariableEqualsEClass = createEClass(STRING_VARIABLE_EQUALS);
+    createEReference(stringVariableEqualsEClass, STRING_VARIABLE_EQUALS__KEY);
+    createEAttribute(stringVariableEqualsEClass, STRING_VARIABLE_EQUALS__VALUE);
+
+    intVariableEqualsEClass = createEClass(INT_VARIABLE_EQUALS);
+    createEReference(intVariableEqualsEClass, INT_VARIABLE_EQUALS__KEY);
+    createEAttribute(intVariableEqualsEClass, INT_VARIABLE_EQUALS__VALUE);
+
+    booleanVariableEqualsEClass = createEClass(BOOLEAN_VARIABLE_EQUALS);
+    createEReference(booleanVariableEqualsEClass, BOOLEAN_VARIABLE_EQUALS__KEY);
+    createEAttribute(booleanVariableEqualsEClass, BOOLEAN_VARIABLE_EQUALS__VALUE);
+
+    variableNotEqualsEClass = createEClass(VARIABLE_NOT_EQUALS);
+
+    stringVariableNotEqualsEClass = createEClass(STRING_VARIABLE_NOT_EQUALS);
+    createEReference(stringVariableNotEqualsEClass, STRING_VARIABLE_NOT_EQUALS__KEY);
+    createEAttribute(stringVariableNotEqualsEClass, STRING_VARIABLE_NOT_EQUALS__VALUE);
+
+    intVariableNotEqualsEClass = createEClass(INT_VARIABLE_NOT_EQUALS);
+    createEReference(intVariableNotEqualsEClass, INT_VARIABLE_NOT_EQUALS__KEY);
+    createEAttribute(intVariableNotEqualsEClass, INT_VARIABLE_NOT_EQUALS__VALUE);
+
+    booleanVariableNotEqualsEClass = createEClass(BOOLEAN_VARIABLE_NOT_EQUALS);
+    createEReference(booleanVariableNotEqualsEClass, BOOLEAN_VARIABLE_NOT_EQUALS__KEY);
+    createEAttribute(booleanVariableNotEqualsEClass, BOOLEAN_VARIABLE_NOT_EQUALS__VALUE);
+
+    mockEClass = createEClass(MOCK);
+
+    mockReferenceEClass = createEClass(MOCK_REFERENCE);
+    createEReference(mockReferenceEClass, MOCK_REFERENCE__REF);
+
+    externalServiceMockEClass = createEClass(EXTERNAL_SERVICE_MOCK);
+    createEReference(externalServiceMockEClass, EXTERNAL_SERVICE_MOCK__EXTERNAL_TOPIC);
+    createEReference(externalServiceMockEClass, EXTERNAL_SERVICE_MOCK__MOCKING_RULES);
+
+    delegateMockEClass = createEClass(DELEGATE_MOCK);
+    createEReference(delegateMockEClass, DELEGATE_MOCK__SERVICE_TASK_REFERENCE);
+    createEAttribute(delegateMockEClass, DELEGATE_MOCK__DELEGATE_CLASS);
+    createEReference(delegateMockEClass, DELEGATE_MOCK__MANUAL_MOCKS);
+
+    mockingRuleEClass = createEClass(MOCKING_RULE);
+    createEReference(mockingRuleEClass, MOCKING_RULE__COMPARISONS);
+    createEReference(mockingRuleEClass, MOCKING_RULE__VARIABLES);
+
+    manualMockEClass = createEClass(MANUAL_MOCK);
+    createEAttribute(manualMockEClass, MANUAL_MOCK__SERVICE_NAME);
+    createEAttribute(manualMockEClass, MANUAL_MOCK__SETTER);
+
+    compareEClass = createEClass(COMPARE);
+
+    stringCompareEClass = createEClass(STRING_COMPARE);
+    createEReference(stringCompareEClass, STRING_COMPARE__KEY);
+    createEAttribute(stringCompareEClass, STRING_COMPARE__COMPARE_SYMBOL);
+    createEAttribute(stringCompareEClass, STRING_COMPARE__VALUE);
+
+    intCompareEClass = createEClass(INT_COMPARE);
+    createEReference(intCompareEClass, INT_COMPARE__KEY);
+    createEAttribute(intCompareEClass, INT_COMPARE__COMPARE_SYMBOL);
+    createEAttribute(intCompareEClass, INT_COMPARE__VALUE);
+
+    booleanCompareEClass = createEClass(BOOLEAN_COMPARE);
+    createEReference(booleanCompareEClass, BOOLEAN_COMPARE__KEY);
+    createEAttribute(booleanCompareEClass, BOOLEAN_COMPARE__COMPARE_SYMBOL);
+    createEAttribute(booleanCompareEClass, BOOLEAN_COMPARE__VALUE);
+
+    // Create enums
+    booleanEEnum = createEEnum(BOOLEAN);
+    stringCompareSymbolEEnum = createEEnum(STRING_COMPARE_SYMBOL);
+    intCompareSymbolEEnum = createEEnum(INT_COMPARE_SYMBOL);
+    booleanCompareSymbolEEnum = createEEnum(BOOLEAN_COMPARE_SYMBOL);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  private boolean isInitialized = false;
+
+  /**
+   * Complete the initialization of the package and its meta-model.  This
+   * method is guarded to have no affect on any invocation but its first.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public void initializePackageContents()
+  {
+    if (isInitialized) return;
+    isInitialized = true;
+
+    // Initialize package
+    setName(eNAME);
+    setNsPrefix(eNS_PREFIX);
+    setNsURI(eNS_URI);
+
+    // Create type parameters
+
+    // Set bounds for type parameters
+
+    // Add supertypes to classes
+    bpmnDiagramEClass.getESuperTypes().add(this.getDeclaration());
+    flowElementEClass.getESuperTypes().add(this.getDeclaration());
+    startFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    endFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    userTaskFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    manualTaskFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    scriptTaskFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    serviceTaskFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    delegateServiceTaskFlowElementEClass.getESuperTypes().add(this.getServiceTaskFlowElement());
+    externalServiceTaskFlowElementEClass.getESuperTypes().add(this.getServiceTaskFlowElement());
+    businessRuleTaskFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    gatewayFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    sequenceFlowElementEClass.getESuperTypes().add(this.getFlowElement());
+    externalTopicEClass.getESuperTypes().add(this.getDeclaration());
+    variableEClass.getESuperTypes().add(this.getDeclaration());
+    stringVariableEClass.getESuperTypes().add(this.getVariable());
+    intVariableEClass.getESuperTypes().add(this.getVariable());
+    booleanVariableEClass.getESuperTypes().add(this.getVariable());
+    loopEClass.getESuperTypes().add(this.getDeclaration());
+    flowEClass.getESuperTypes().add(this.getDeclaration());
+    testEClass.getESuperTypes().add(this.getDeclaration());
+    stringVariableDeclarationEClass.getESuperTypes().add(this.getVariableDeclaration());
+    intVariableDeclarationEClass.getESuperTypes().add(this.getVariableDeclaration());
+    booleanVariableDeclarationEClass.getESuperTypes().add(this.getVariableDeclaration());
+    variableEqualsEClass.getESuperTypes().add(this.getEndCheck());
+    stringVariableEqualsEClass.getESuperTypes().add(this.getVariableEquals());
+    intVariableEqualsEClass.getESuperTypes().add(this.getVariableEquals());
+    booleanVariableEqualsEClass.getESuperTypes().add(this.getVariableEquals());
+    variableNotEqualsEClass.getESuperTypes().add(this.getEndCheck());
+    stringVariableNotEqualsEClass.getESuperTypes().add(this.getVariableNotEquals());
+    intVariableNotEqualsEClass.getESuperTypes().add(this.getVariableNotEquals());
+    booleanVariableNotEqualsEClass.getESuperTypes().add(this.getVariableNotEquals());
+    mockEClass.getESuperTypes().add(this.getDeclaration());
+    externalServiceMockEClass.getESuperTypes().add(this.getMock());
+    delegateMockEClass.getESuperTypes().add(this.getMock());
+    stringCompareEClass.getESuperTypes().add(this.getCompare());
+    intCompareEClass.getESuperTypes().add(this.getCompare());
+    booleanCompareEClass.getESuperTypes().add(this.getCompare());
+
+    // Initialize classes and features; add operations and parameters
+    initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getModel_Declarations(), this.getDeclaration(), null, "declarations", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(declarationEClass, Declaration.class, "Declaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getDeclaration_Name(), ecorePackage.getEString(), "name", null, 0, 1, Declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(bpmnDiagramEClass, BPMNDiagram.class, "BPMNDiagram", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getBPMNDiagram_Testpackage(), ecorePackage.getEString(), "testpackage", null, 0, 1, BPMNDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBPMNDiagram_Bpmn(), ecorePackage.getEString(), "bpmn", null, 0, 1, BPMNDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBPMNDiagram_Key(), ecorePackage.getEString(), "key", null, 0, 1, BPMNDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBPMNDiagram_Dmn(), ecorePackage.getEString(), "dmn", null, 0, -1, BPMNDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBPMNDiagram_Embedded(), ecorePackage.getEString(), "embedded", null, 0, -1, BPMNDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(bpmnReferenceEClass, BPMNReference.class, "BPMNReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getBPMNReference_Ref(), this.getBPMNDiagram(), null, "ref", null, 0, 1, BPMNReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(flowElementEClass, FlowElement.class, "FlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(startFlowElementEClass, StartFlowElement.class, "StartFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getStartFlowElement_InputVariables(), this.getVariableReference(), null, "inputVariables", null, 0, -1, StartFlowElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(endFlowElementEClass, EndFlowElement.class, "EndFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(userTaskFlowElementEClass, UserTaskFlowElement.class, "UserTaskFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getUserTaskFlowElement_InputVariables(), this.getVariableReference(), null, "inputVariables", null, 0, -1, UserTaskFlowElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(manualTaskFlowElementEClass, ManualTaskFlowElement.class, "ManualTaskFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(scriptTaskFlowElementEClass, ScriptTaskFlowElement.class, "ScriptTaskFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(serviceTaskFlowElementEClass, ServiceTaskFlowElement.class, "ServiceTaskFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(delegateServiceTaskFlowElementEClass, DelegateServiceTaskFlowElement.class, "DelegateServiceTaskFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getDelegateServiceTaskFlowElement_Delegate(), ecorePackage.getEString(), "delegate", null, 0, 1, DelegateServiceTaskFlowElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(externalServiceTaskFlowElementEClass, ExternalServiceTaskFlowElement.class, "ExternalServiceTaskFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getExternalServiceTaskFlowElement_ExternalTopic(), this.getExternalTopicReference(), null, "externalTopic", null, 0, 1, ExternalServiceTaskFlowElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getExternalServiceTaskFlowElement_HardcodedInputs(), this.getVariableDeclaration(), null, "hardcodedInputs", null, 0, -1, ExternalServiceTaskFlowElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(businessRuleTaskFlowElementEClass, BusinessRuleTaskFlowElement.class, "BusinessRuleTaskFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(gatewayFlowElementEClass, GatewayFlowElement.class, "GatewayFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(sequenceFlowElementEClass, SequenceFlowElement.class, "SequenceFlowElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getSequenceFlowElement_Expression(), ecorePackage.getEString(), "expression", null, 0, 1, SequenceFlowElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(flowElementReferenceEClass, FlowElementReference.class, "FlowElementReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getFlowElementReference_Ref(), this.getFlowElement(), null, "ref", null, 0, 1, FlowElementReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(delegateServiceTaskReferenceEClass, DelegateServiceTaskReference.class, "DelegateServiceTaskReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getDelegateServiceTaskReference_Ref(), this.getDelegateServiceTaskFlowElement(), null, "ref", null, 0, 1, DelegateServiceTaskReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(externalTopicEClass, ExternalTopic.class, "ExternalTopic", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(externalTopicReferenceEClass, ExternalTopicReference.class, "ExternalTopicReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getExternalTopicReference_Ref(), this.getExternalTopic(), null, "ref", null, 0, 1, ExternalTopicReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(variableEClass, Variable.class, "Variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(variableReferenceEClass, VariableReference.class, "VariableReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getVariableReference_Ref(), this.getVariable(), null, "ref", null, 0, 1, VariableReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(stringVariableEClass, StringVariable.class, "StringVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getStringVariable_Proposals(), ecorePackage.getEString(), "proposals", null, 0, -1, StringVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(intVariableEClass, IntVariable.class, "IntVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getIntVariable_Proposals(), ecorePackage.getEInt(), "proposals", null, 0, -1, IntVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(booleanVariableEClass, BooleanVariable.class, "BooleanVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getBooleanVariable_Proposals(), this.getBoolean(), "proposals", null, 0, -1, BooleanVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(loopEClass, Loop.class, "Loop", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getLoop_Start(), ecorePackage.getEString(), "start", null, 0, 1, Loop.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getLoop_Follower(), ecorePackage.getEString(), "follower", null, 0, 1, Loop.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getLoop_End(), ecorePackage.getEString(), "end", null, 0, 1, Loop.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getLoop_Complexity(), ecorePackage.getEInt(), "complexity", null, 0, 1, Loop.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getLoop_Frequencies(), ecorePackage.getEInt(), "frequencies", null, 0, -1, Loop.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(flowEClass, Flow.class, "Flow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getFlow_BpmnReference(), this.getBPMNReference(), null, "bpmnReference", null, 0, 1, Flow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getFlow_InclElements(), this.getFlowElementReference(), null, "inclElements", null, 0, -1, Flow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getFlow_ExclElements(), this.getFlowElementReference(), null, "exclElements", null, 0, -1, Flow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(flowReferenceEClass, FlowReference.class, "FlowReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getFlowReference_Ref(), this.getFlow(), null, "ref", null, 0, 1, FlowReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(testEClass, Test.class, "Test", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getTest_FlowReference(), this.getFlowReference(), null, "flowReference", null, 0, 1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getTest_Priority(), ecorePackage.getEInt(), "priority", null, 0, 1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getTest_Declarations(), this.getVariableDeclarations(), null, "declarations", null, 0, -1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getTest_EndCheck(), this.getEndChecks(), null, "endCheck", null, 0, 1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getTest_Mocks(), this.getMockReference(), null, "mocks", null, 0, -1, Test.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(variableDeclarationsEClass, VariableDeclarations.class, "VariableDeclarations", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getVariableDeclarations_TaskReference(), this.getFlowElementReference(), null, "taskReference", null, 0, 1, VariableDeclarations.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getVariableDeclarations_Variables(), this.getVariableDeclaration(), null, "variables", null, 0, -1, VariableDeclarations.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(endChecksEClass, EndChecks.class, "EndChecks", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getEndChecks_EndChecks(), this.getEndCheck(), null, "endChecks", null, 0, -1, EndChecks.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(variableDeclarationEClass, VariableDeclaration.class, "VariableDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(stringVariableDeclarationEClass, StringVariableDeclaration.class, "StringVariableDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getStringVariableDeclaration_Key(), this.getStringVariable(), null, "key", null, 0, 1, StringVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getStringVariableDeclaration_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(intVariableDeclarationEClass, IntVariableDeclaration.class, "IntVariableDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getIntVariableDeclaration_Key(), this.getIntVariable(), null, "key", null, 0, 1, IntVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getIntVariableDeclaration_Value(), ecorePackage.getEInt(), "value", null, 0, 1, IntVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(booleanVariableDeclarationEClass, BooleanVariableDeclaration.class, "BooleanVariableDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getBooleanVariableDeclaration_Key(), this.getBooleanVariable(), null, "key", null, 0, 1, BooleanVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBooleanVariableDeclaration_Value(), this.getBoolean(), "value", null, 0, 1, BooleanVariableDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(endCheckEClass, EndCheck.class, "EndCheck", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(variableEqualsEClass, VariableEquals.class, "VariableEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(stringVariableEqualsEClass, StringVariableEquals.class, "StringVariableEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getStringVariableEquals_Key(), this.getStringVariable(), null, "key", null, 0, 1, StringVariableEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getStringVariableEquals_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringVariableEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(intVariableEqualsEClass, IntVariableEquals.class, "IntVariableEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getIntVariableEquals_Key(), this.getIntVariable(), null, "key", null, 0, 1, IntVariableEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getIntVariableEquals_Value(), ecorePackage.getEInt(), "value", null, 0, 1, IntVariableEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(booleanVariableEqualsEClass, BooleanVariableEquals.class, "BooleanVariableEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getBooleanVariableEquals_Key(), this.getBooleanVariable(), null, "key", null, 0, 1, BooleanVariableEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBooleanVariableEquals_Value(), this.getBoolean(), "value", null, 0, 1, BooleanVariableEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(variableNotEqualsEClass, VariableNotEquals.class, "VariableNotEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(stringVariableNotEqualsEClass, StringVariableNotEquals.class, "StringVariableNotEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getStringVariableNotEquals_Key(), this.getStringVariable(), null, "key", null, 0, 1, StringVariableNotEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getStringVariableNotEquals_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringVariableNotEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(intVariableNotEqualsEClass, IntVariableNotEquals.class, "IntVariableNotEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getIntVariableNotEquals_Key(), this.getIntVariable(), null, "key", null, 0, 1, IntVariableNotEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getIntVariableNotEquals_Value(), ecorePackage.getEInt(), "value", null, 0, 1, IntVariableNotEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(booleanVariableNotEqualsEClass, BooleanVariableNotEquals.class, "BooleanVariableNotEquals", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getBooleanVariableNotEquals_Key(), this.getBooleanVariable(), null, "key", null, 0, 1, BooleanVariableNotEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBooleanVariableNotEquals_Value(), this.getBoolean(), "value", null, 0, 1, BooleanVariableNotEquals.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(mockEClass, Mock.class, "Mock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(mockReferenceEClass, MockReference.class, "MockReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getMockReference_Ref(), this.getMock(), null, "ref", null, 0, 1, MockReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(externalServiceMockEClass, ExternalServiceMock.class, "ExternalServiceMock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getExternalServiceMock_ExternalTopic(), this.getExternalTopicReference(), null, "externalTopic", null, 0, 1, ExternalServiceMock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getExternalServiceMock_MockingRules(), this.getMockingRule(), null, "mockingRules", null, 0, -1, ExternalServiceMock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(delegateMockEClass, DelegateMock.class, "DelegateMock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getDelegateMock_ServiceTaskReference(), this.getDelegateServiceTaskReference(), null, "serviceTaskReference", null, 0, 1, DelegateMock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getDelegateMock_DelegateClass(), ecorePackage.getEString(), "delegateClass", null, 0, 1, DelegateMock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getDelegateMock_ManualMocks(), this.getManualMock(), null, "manualMocks", null, 0, -1, DelegateMock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(mockingRuleEClass, MockingRule.class, "MockingRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getMockingRule_Comparisons(), this.getCompare(), null, "comparisons", null, 0, -1, MockingRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEReference(getMockingRule_Variables(), this.getVariableDeclaration(), null, "variables", null, 0, -1, MockingRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(manualMockEClass, ManualMock.class, "ManualMock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEAttribute(getManualMock_ServiceName(), ecorePackage.getEString(), "serviceName", null, 0, 1, ManualMock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getManualMock_Setter(), ecorePackage.getEString(), "setter", null, 0, 1, ManualMock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(compareEClass, Compare.class, "Compare", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+    initEClass(stringCompareEClass, StringCompare.class, "StringCompare", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getStringCompare_Key(), this.getStringVariable(), null, "key", null, 0, 1, StringCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getStringCompare_CompareSymbol(), this.getStringCompareSymbol(), "compareSymbol", null, 0, 1, StringCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getStringCompare_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(intCompareEClass, IntCompare.class, "IntCompare", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getIntCompare_Key(), this.getIntVariable(), null, "key", null, 0, 1, IntCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getIntCompare_CompareSymbol(), this.getIntCompareSymbol(), "compareSymbol", null, 0, 1, IntCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getIntCompare_Value(), ecorePackage.getEInt(), "value", null, 0, 1, IntCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    initEClass(booleanCompareEClass, BooleanCompare.class, "BooleanCompare", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+    initEReference(getBooleanCompare_Key(), this.getBooleanVariable(), null, "key", null, 0, 1, BooleanCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBooleanCompare_CompareSymbol(), this.getBooleanCompareSymbol(), "compareSymbol", null, 0, 1, BooleanCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+    initEAttribute(getBooleanCompare_Value(), this.getBoolean(), "value", null, 0, 1, BooleanCompare.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+    // Initialize enums and add enum literals
+    initEEnum(booleanEEnum, de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.class, "Boolean");
+    addEEnumLiteral(booleanEEnum, de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.TRUE);
+    addEEnumLiteral(booleanEEnum, de.fhmuenster.masterthesis.testgeneratorDSL.Boolean.FALSE);
+
+    initEEnum(stringCompareSymbolEEnum, StringCompareSymbol.class, "StringCompareSymbol");
+    addEEnumLiteral(stringCompareSymbolEEnum, StringCompareSymbol.EQUALS);
+    addEEnumLiteral(stringCompareSymbolEEnum, StringCompareSymbol.NOT_EQUALS);
+
+    initEEnum(intCompareSymbolEEnum, IntCompareSymbol.class, "IntCompareSymbol");
+    addEEnumLiteral(intCompareSymbolEEnum, IntCompareSymbol.EQUALS);
+    addEEnumLiteral(intCompareSymbolEEnum, IntCompareSymbol.NOT_EQUALS);
+    addEEnumLiteral(intCompareSymbolEEnum, IntCompareSymbol.LOWER);
+    addEEnumLiteral(intCompareSymbolEEnum, IntCompareSymbol.GREATER);
+    addEEnumLiteral(intCompareSymbolEEnum, IntCompareSymbol.LOWER_EQUALS);
+    addEEnumLiteral(intCompareSymbolEEnum, IntCompareSymbol.GREATER_EQUALS);
+
+    initEEnum(booleanCompareSymbolEEnum, BooleanCompareSymbol.class, "BooleanCompareSymbol");
+    addEEnumLiteral(booleanCompareSymbolEEnum, BooleanCompareSymbol.EQUALS);
+    addEEnumLiteral(booleanCompareSymbolEEnum, BooleanCompareSymbol.NOT_EQUALS);
+
+    // Create resource
+    createResource(eNS_URI);
+  }
+
+} //TestgeneratorDSLPackageImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -2510,3 +5024,4 @@ public class TestgeneratorDSLPackageImpl extends EPackageImpl implements Testgen
   }
 
 } //TestgeneratorDSLPackageImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/UserTaskFlowElementImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/UserTaskFlowElementImpl.java
index 3f540bc5ff19aa7cd681877a630d84e396c411a7..69722f037e9d90c0a7de7267e247f46ddb1dc1b6 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/UserTaskFlowElementImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/UserTaskFlowElementImpl.java
@@ -1,3 +1,172 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>User Task Flow Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.UserTaskFlowElementImpl#getInputVariables <em>Input Variables</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class UserTaskFlowElementImpl extends FlowElementImpl implements UserTaskFlowElement
+{
+  /**
+   * The cached value of the '{@link #getInputVariables() <em>Input Variables</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getInputVariables()
+   * @generated
+   * @ordered
+   */
+  protected EList<VariableReference> inputVariables;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected UserTaskFlowElementImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.USER_TASK_FLOW_ELEMENT;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<VariableReference> getInputVariables()
+  {
+    if (inputVariables == null)
+    {
+      inputVariables = new EObjectContainmentEList<VariableReference>(VariableReference.class, this, TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES);
+    }
+    return inputVariables;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES:
+        return ((InternalEList<?>)getInputVariables()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES:
+        return getInputVariables();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES:
+        getInputVariables().clear();
+        getInputVariables().addAll((Collection<? extends VariableReference>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES:
+        getInputVariables().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT__INPUT_VARIABLES:
+        return inputVariables != null && !inputVariables.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //UserTaskFlowElementImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -165,3 +334,4 @@ public class UserTaskFlowElementImpl extends FlowElementImpl implements UserTask
   }
 
 } //UserTaskFlowElementImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableDeclarationImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableDeclarationImpl.java
index 6ed2a36c022fef35bb472f556f1412ba26ff1fd5..268752466e3d31a5f5167e9d7f8c3c540a99f340 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableDeclarationImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableDeclarationImpl.java
@@ -1,3 +1,48 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Declaration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VariableDeclarationImpl extends MinimalEObjectImpl.Container implements VariableDeclaration
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected VariableDeclarationImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.VARIABLE_DECLARATION;
+  }
+
+} //VariableDeclarationImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -41,3 +86,4 @@ public class VariableDeclarationImpl extends MinimalEObjectImpl.Container implem
   }
 
 } //VariableDeclarationImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableDeclarationsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableDeclarationsImpl.java
index 7964387ff7c25bd1709b92ea274e1a930144819e..cd2ff146fd75bd2cc54a93c7b606faa8ff0c9527 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableDeclarationsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableDeclarationsImpl.java
@@ -1,3 +1,250 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Declarations</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationsImpl#getTaskReference <em>Task Reference</em>}</li>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableDeclarationsImpl#getVariables <em>Variables</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VariableDeclarationsImpl extends MinimalEObjectImpl.Container implements VariableDeclarations
+{
+  /**
+   * The cached value of the '{@link #getTaskReference() <em>Task Reference</em>}' containment reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getTaskReference()
+   * @generated
+   * @ordered
+   */
+  protected FlowElementReference taskReference;
+
+  /**
+   * The cached value of the '{@link #getVariables() <em>Variables</em>}' containment reference list.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getVariables()
+   * @generated
+   * @ordered
+   */
+  protected EList<VariableDeclaration> variables;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected VariableDeclarationsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.VARIABLE_DECLARATIONS;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public FlowElementReference getTaskReference()
+  {
+    return taskReference;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public NotificationChain basicSetTaskReference(FlowElementReference newTaskReference, NotificationChain msgs)
+  {
+    FlowElementReference oldTaskReference = taskReference;
+    taskReference = newTaskReference;
+    if (eNotificationRequired())
+    {
+      ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE, oldTaskReference, newTaskReference);
+      if (msgs == null) msgs = notification; else msgs.add(notification);
+    }
+    return msgs;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setTaskReference(FlowElementReference newTaskReference)
+  {
+    if (newTaskReference != taskReference)
+    {
+      NotificationChain msgs = null;
+      if (taskReference != null)
+        msgs = ((InternalEObject)taskReference).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE, null, msgs);
+      if (newTaskReference != null)
+        msgs = ((InternalEObject)newTaskReference).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE, null, msgs);
+      msgs = basicSetTaskReference(newTaskReference, msgs);
+      if (msgs != null) msgs.dispatch();
+    }
+    else if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE, newTaskReference, newTaskReference));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public EList<VariableDeclaration> getVariables()
+  {
+    if (variables == null)
+    {
+      variables = new EObjectContainmentEList<VariableDeclaration>(VariableDeclaration.class, this, TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__VARIABLES);
+    }
+    return variables;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE:
+        return basicSetTaskReference(null, msgs);
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__VARIABLES:
+        return ((InternalEList<?>)getVariables()).basicRemove(otherEnd, msgs);
+    }
+    return super.eInverseRemove(otherEnd, featureID, msgs);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE:
+        return getTaskReference();
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__VARIABLES:
+        return getVariables();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @SuppressWarnings("unchecked")
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE:
+        setTaskReference((FlowElementReference)newValue);
+        return;
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__VARIABLES:
+        getVariables().clear();
+        getVariables().addAll((Collection<? extends VariableDeclaration>)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE:
+        setTaskReference((FlowElementReference)null);
+        return;
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__VARIABLES:
+        getVariables().clear();
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__TASK_REFERENCE:
+        return taskReference != null;
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS__VARIABLES:
+        return variables != null && !variables.isEmpty();
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //VariableDeclarationsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -243,3 +490,4 @@ public class VariableDeclarationsImpl extends MinimalEObjectImpl.Container imple
   }
 
 } //VariableDeclarationsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableEqualsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableEqualsImpl.java
index 40d6aa231a0e62572ceda49203509d7f3f835f59..b9a2ea6e9196eca3f612cfdffb8c62ff311a3483 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableEqualsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableEqualsImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VariableEqualsImpl extends EndCheckImpl implements VariableEquals
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected VariableEqualsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.VARIABLE_EQUALS;
+  }
+
+} //VariableEqualsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class VariableEqualsImpl extends EndCheckImpl implements VariableEquals
   }
 
 } //VariableEqualsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableImpl.java
index cd7b1af956121dc0452963a43e2e23ea0dc778b8..ab1b115cb4cf56bced19a409bfbbb97ca349f109 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Variable;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VariableImpl extends DeclarationImpl implements Variable
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected VariableImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.VARIABLE;
+  }
+
+} //VariableImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class VariableImpl extends DeclarationImpl implements Variable
   }
 
 } //VariableImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableNotEqualsImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableNotEqualsImpl.java
index 6f15a01e89f61f8b41c93025d7ceee16d6421e0e..ad3d48a71ec7c921a34586fa8447b3d8c43f25e2 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableNotEqualsImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableNotEqualsImpl.java
@@ -1,3 +1,46 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Not Equals</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class VariableNotEqualsImpl extends EndCheckImpl implements VariableNotEquals
+{
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected VariableNotEqualsImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.VARIABLE_NOT_EQUALS;
+  }
+
+} //VariableNotEqualsImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -39,3 +82,4 @@ public class VariableNotEqualsImpl extends EndCheckImpl implements VariableNotEq
   }
 
 } //VariableNotEqualsImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableReferenceImpl.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableReferenceImpl.java
index ae005458a29290d27359fae2ce009e65c07db02a..f78e806a713bd9b30df751641cc1f0a6aab1eeee 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableReferenceImpl.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/impl/VariableReferenceImpl.java
@@ -1,3 +1,181 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.impl;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Variable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.fhmuenster.masterthesis.testgeneratorDSL.impl.VariableReferenceImpl#getRef <em>Ref</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VariableReferenceImpl extends MinimalEObjectImpl.Container implements VariableReference
+{
+  /**
+   * The cached value of the '{@link #getRef() <em>Ref</em>}' reference.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @see #getRef()
+   * @generated
+   * @ordered
+   */
+  protected Variable ref;
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected VariableReferenceImpl()
+  {
+    super();
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  protected EClass eStaticClass()
+  {
+    return TestgeneratorDSLPackage.Literals.VARIABLE_REFERENCE;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Variable getRef()
+  {
+    if (ref != null && ref.eIsProxy())
+    {
+      InternalEObject oldRef = (InternalEObject)ref;
+      ref = (Variable)eResolveProxy(oldRef);
+      if (ref != oldRef)
+      {
+        if (eNotificationRequired())
+          eNotify(new ENotificationImpl(this, Notification.RESOLVE, TestgeneratorDSLPackage.VARIABLE_REFERENCE__REF, oldRef, ref));
+      }
+    }
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public Variable basicGetRef()
+  {
+    return ref;
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void setRef(Variable newRef)
+  {
+    Variable oldRef = ref;
+    ref = newRef;
+    if (eNotificationRequired())
+      eNotify(new ENotificationImpl(this, Notification.SET, TestgeneratorDSLPackage.VARIABLE_REFERENCE__REF, oldRef, ref));
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public Object eGet(int featureID, boolean resolve, boolean coreType)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_REFERENCE__REF:
+        if (resolve) return getRef();
+        return basicGetRef();
+    }
+    return super.eGet(featureID, resolve, coreType);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eSet(int featureID, Object newValue)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_REFERENCE__REF:
+        setRef((Variable)newValue);
+        return;
+    }
+    super.eSet(featureID, newValue);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public void eUnset(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_REFERENCE__REF:
+        setRef((Variable)null);
+        return;
+    }
+    super.eUnset(featureID);
+  }
+
+  /**
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  @Override
+  public boolean eIsSet(int featureID)
+  {
+    switch (featureID)
+    {
+      case TestgeneratorDSLPackage.VARIABLE_REFERENCE__REF:
+        return ref != null;
+    }
+    return super.eIsSet(featureID);
+  }
+
+} //VariableReferenceImpl
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -174,3 +352,4 @@ public class VariableReferenceImpl extends MinimalEObjectImpl.Container implemen
   }
 
 } //VariableReferenceImpl
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/util/TestgeneratorDSLAdapterFactory.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/util/TestgeneratorDSLAdapterFactory.java
index db8591dd23193143388872a196d46180a2e0e908..12eee9abb62ba3b682105915418a4365bb12123f 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/util/TestgeneratorDSLAdapterFactory.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/util/TestgeneratorDSLAdapterFactory.java
@@ -1,3 +1,1252 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.util;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Compare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Declaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Loop;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Mock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Model;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Variable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage
+ * @generated
+ */
+public class TestgeneratorDSLAdapterFactory extends AdapterFactoryImpl
+{
+  /**
+   * The cached model package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected static TestgeneratorDSLPackage modelPackage;
+
+  /**
+   * Creates an instance of the adapter factory.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public TestgeneratorDSLAdapterFactory()
+  {
+    if (modelPackage == null)
+    {
+      modelPackage = TestgeneratorDSLPackage.eINSTANCE;
+    }
+  }
+
+  /**
+   * Returns whether this factory is applicable for the type of the object.
+   * <!-- begin-user-doc -->
+   * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+   * <!-- end-user-doc -->
+   * @return whether this factory is applicable for the type of the object.
+   * @generated
+   */
+  @Override
+  public boolean isFactoryForType(Object object)
+  {
+    if (object == modelPackage)
+    {
+      return true;
+    }
+    if (object instanceof EObject)
+    {
+      return ((EObject)object).eClass().getEPackage() == modelPackage;
+    }
+    return false;
+  }
+
+  /**
+   * The switch that delegates to the <code>createXXX</code> methods.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected TestgeneratorDSLSwitch<Adapter> modelSwitch =
+    new TestgeneratorDSLSwitch<Adapter>()
+    {
+      @Override
+      public Adapter caseModel(Model object)
+      {
+        return createModelAdapter();
+      }
+      @Override
+      public Adapter caseDeclaration(Declaration object)
+      {
+        return createDeclarationAdapter();
+      }
+      @Override
+      public Adapter caseBPMNDiagram(BPMNDiagram object)
+      {
+        return createBPMNDiagramAdapter();
+      }
+      @Override
+      public Adapter caseBPMNReference(BPMNReference object)
+      {
+        return createBPMNReferenceAdapter();
+      }
+      @Override
+      public Adapter caseFlowElement(FlowElement object)
+      {
+        return createFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseStartFlowElement(StartFlowElement object)
+      {
+        return createStartFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseEndFlowElement(EndFlowElement object)
+      {
+        return createEndFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseUserTaskFlowElement(UserTaskFlowElement object)
+      {
+        return createUserTaskFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseManualTaskFlowElement(ManualTaskFlowElement object)
+      {
+        return createManualTaskFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseScriptTaskFlowElement(ScriptTaskFlowElement object)
+      {
+        return createScriptTaskFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseServiceTaskFlowElement(ServiceTaskFlowElement object)
+      {
+        return createServiceTaskFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseDelegateServiceTaskFlowElement(DelegateServiceTaskFlowElement object)
+      {
+        return createDelegateServiceTaskFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseExternalServiceTaskFlowElement(ExternalServiceTaskFlowElement object)
+      {
+        return createExternalServiceTaskFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseBusinessRuleTaskFlowElement(BusinessRuleTaskFlowElement object)
+      {
+        return createBusinessRuleTaskFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseGatewayFlowElement(GatewayFlowElement object)
+      {
+        return createGatewayFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseSequenceFlowElement(SequenceFlowElement object)
+      {
+        return createSequenceFlowElementAdapter();
+      }
+      @Override
+      public Adapter caseFlowElementReference(FlowElementReference object)
+      {
+        return createFlowElementReferenceAdapter();
+      }
+      @Override
+      public Adapter caseDelegateServiceTaskReference(DelegateServiceTaskReference object)
+      {
+        return createDelegateServiceTaskReferenceAdapter();
+      }
+      @Override
+      public Adapter caseExternalTopic(ExternalTopic object)
+      {
+        return createExternalTopicAdapter();
+      }
+      @Override
+      public Adapter caseExternalTopicReference(ExternalTopicReference object)
+      {
+        return createExternalTopicReferenceAdapter();
+      }
+      @Override
+      public Adapter caseVariable(Variable object)
+      {
+        return createVariableAdapter();
+      }
+      @Override
+      public Adapter caseVariableReference(VariableReference object)
+      {
+        return createVariableReferenceAdapter();
+      }
+      @Override
+      public Adapter caseStringVariable(StringVariable object)
+      {
+        return createStringVariableAdapter();
+      }
+      @Override
+      public Adapter caseIntVariable(IntVariable object)
+      {
+        return createIntVariableAdapter();
+      }
+      @Override
+      public Adapter caseBooleanVariable(BooleanVariable object)
+      {
+        return createBooleanVariableAdapter();
+      }
+      @Override
+      public Adapter caseLoop(Loop object)
+      {
+        return createLoopAdapter();
+      }
+      @Override
+      public Adapter caseFlow(Flow object)
+      {
+        return createFlowAdapter();
+      }
+      @Override
+      public Adapter caseFlowReference(FlowReference object)
+      {
+        return createFlowReferenceAdapter();
+      }
+      @Override
+      public Adapter caseTest(Test object)
+      {
+        return createTestAdapter();
+      }
+      @Override
+      public Adapter caseVariableDeclarations(VariableDeclarations object)
+      {
+        return createVariableDeclarationsAdapter();
+      }
+      @Override
+      public Adapter caseEndChecks(EndChecks object)
+      {
+        return createEndChecksAdapter();
+      }
+      @Override
+      public Adapter caseVariableDeclaration(VariableDeclaration object)
+      {
+        return createVariableDeclarationAdapter();
+      }
+      @Override
+      public Adapter caseStringVariableDeclaration(StringVariableDeclaration object)
+      {
+        return createStringVariableDeclarationAdapter();
+      }
+      @Override
+      public Adapter caseIntVariableDeclaration(IntVariableDeclaration object)
+      {
+        return createIntVariableDeclarationAdapter();
+      }
+      @Override
+      public Adapter caseBooleanVariableDeclaration(BooleanVariableDeclaration object)
+      {
+        return createBooleanVariableDeclarationAdapter();
+      }
+      @Override
+      public Adapter caseEndCheck(EndCheck object)
+      {
+        return createEndCheckAdapter();
+      }
+      @Override
+      public Adapter caseVariableEquals(VariableEquals object)
+      {
+        return createVariableEqualsAdapter();
+      }
+      @Override
+      public Adapter caseStringVariableEquals(StringVariableEquals object)
+      {
+        return createStringVariableEqualsAdapter();
+      }
+      @Override
+      public Adapter caseIntVariableEquals(IntVariableEquals object)
+      {
+        return createIntVariableEqualsAdapter();
+      }
+      @Override
+      public Adapter caseBooleanVariableEquals(BooleanVariableEquals object)
+      {
+        return createBooleanVariableEqualsAdapter();
+      }
+      @Override
+      public Adapter caseVariableNotEquals(VariableNotEquals object)
+      {
+        return createVariableNotEqualsAdapter();
+      }
+      @Override
+      public Adapter caseStringVariableNotEquals(StringVariableNotEquals object)
+      {
+        return createStringVariableNotEqualsAdapter();
+      }
+      @Override
+      public Adapter caseIntVariableNotEquals(IntVariableNotEquals object)
+      {
+        return createIntVariableNotEqualsAdapter();
+      }
+      @Override
+      public Adapter caseBooleanVariableNotEquals(BooleanVariableNotEquals object)
+      {
+        return createBooleanVariableNotEqualsAdapter();
+      }
+      @Override
+      public Adapter caseMock(Mock object)
+      {
+        return createMockAdapter();
+      }
+      @Override
+      public Adapter caseMockReference(MockReference object)
+      {
+        return createMockReferenceAdapter();
+      }
+      @Override
+      public Adapter caseExternalServiceMock(ExternalServiceMock object)
+      {
+        return createExternalServiceMockAdapter();
+      }
+      @Override
+      public Adapter caseDelegateMock(DelegateMock object)
+      {
+        return createDelegateMockAdapter();
+      }
+      @Override
+      public Adapter caseMockingRule(MockingRule object)
+      {
+        return createMockingRuleAdapter();
+      }
+      @Override
+      public Adapter caseManualMock(ManualMock object)
+      {
+        return createManualMockAdapter();
+      }
+      @Override
+      public Adapter caseCompare(Compare object)
+      {
+        return createCompareAdapter();
+      }
+      @Override
+      public Adapter caseStringCompare(StringCompare object)
+      {
+        return createStringCompareAdapter();
+      }
+      @Override
+      public Adapter caseIntCompare(IntCompare object)
+      {
+        return createIntCompareAdapter();
+      }
+      @Override
+      public Adapter caseBooleanCompare(BooleanCompare object)
+      {
+        return createBooleanCompareAdapter();
+      }
+      @Override
+      public Adapter defaultCase(EObject object)
+      {
+        return createEObjectAdapter();
+      }
+    };
+
+  /**
+   * Creates an adapter for the <code>target</code>.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param target the object to adapt.
+   * @return the adapter for the <code>target</code>.
+   * @generated
+   */
+  @Override
+  public Adapter createAdapter(Notifier target)
+  {
+    return modelSwitch.doSwitch((EObject)target);
+  }
+
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Model <em>Model</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Model
+   * @generated
+   */
+  public Adapter createModelAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Declaration <em>Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Declaration
+   * @generated
+   */
+  public Adapter createDeclarationAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram <em>BPMN Diagram</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram
+   * @generated
+   */
+  public Adapter createBPMNDiagramAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference <em>BPMN Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference
+   * @generated
+   */
+  public Adapter createBPMNReferenceAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement <em>Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement
+   * @generated
+   */
+  public Adapter createFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement <em>Start Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement
+   * @generated
+   */
+  public Adapter createStartFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement <em>End Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement
+   * @generated
+   */
+  public Adapter createEndFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement <em>User Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement
+   * @generated
+   */
+  public Adapter createUserTaskFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement <em>Manual Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement
+   * @generated
+   */
+  public Adapter createManualTaskFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement <em>Script Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement
+   * @generated
+   */
+  public Adapter createScriptTaskFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement <em>Service Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement
+   * @generated
+   */
+  public Adapter createServiceTaskFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement <em>Delegate Service Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement
+   * @generated
+   */
+  public Adapter createDelegateServiceTaskFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement <em>External Service Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement
+   * @generated
+   */
+  public Adapter createExternalServiceTaskFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement <em>Business Rule Task Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement
+   * @generated
+   */
+  public Adapter createBusinessRuleTaskFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement <em>Gateway Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement
+   * @generated
+   */
+  public Adapter createGatewayFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement <em>Sequence Flow Element</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement
+   * @generated
+   */
+  public Adapter createSequenceFlowElementAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference <em>Flow Element Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference
+   * @generated
+   */
+  public Adapter createFlowElementReferenceAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference <em>Delegate Service Task Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference
+   * @generated
+   */
+  public Adapter createDelegateServiceTaskReferenceAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic <em>External Topic</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic
+   * @generated
+   */
+  public Adapter createExternalTopicAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference <em>External Topic Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference
+   * @generated
+   */
+  public Adapter createExternalTopicReferenceAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Variable <em>Variable</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Variable
+   * @generated
+   */
+  public Adapter createVariableAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference <em>Variable Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference
+   * @generated
+   */
+  public Adapter createVariableReferenceAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable <em>String Variable</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable
+   * @generated
+   */
+  public Adapter createStringVariableAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable <em>Int Variable</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable
+   * @generated
+   */
+  public Adapter createIntVariableAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable <em>Boolean Variable</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable
+   * @generated
+   */
+  public Adapter createBooleanVariableAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Loop <em>Loop</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Loop
+   * @generated
+   */
+  public Adapter createLoopAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Flow <em>Flow</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Flow
+   * @generated
+   */
+  public Adapter createFlowAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference <em>Flow Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference
+   * @generated
+   */
+  public Adapter createFlowReferenceAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Test <em>Test</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Test
+   * @generated
+   */
+  public Adapter createTestAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations <em>Variable Declarations</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations
+   * @generated
+   */
+  public Adapter createVariableDeclarationsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks <em>End Checks</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks
+   * @generated
+   */
+  public Adapter createEndChecksAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration <em>Variable Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration
+   * @generated
+   */
+  public Adapter createVariableDeclarationAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration <em>String Variable Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration
+   * @generated
+   */
+  public Adapter createStringVariableDeclarationAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration <em>Int Variable Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration
+   * @generated
+   */
+  public Adapter createIntVariableDeclarationAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration <em>Boolean Variable Declaration</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration
+   * @generated
+   */
+  public Adapter createBooleanVariableDeclarationAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck <em>End Check</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck
+   * @generated
+   */
+  public Adapter createEndCheckAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals <em>Variable Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals
+   * @generated
+   */
+  public Adapter createVariableEqualsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals <em>String Variable Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals
+   * @generated
+   */
+  public Adapter createStringVariableEqualsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals <em>Int Variable Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals
+   * @generated
+   */
+  public Adapter createIntVariableEqualsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals <em>Boolean Variable Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals
+   * @generated
+   */
+  public Adapter createBooleanVariableEqualsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals <em>Variable Not Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals
+   * @generated
+   */
+  public Adapter createVariableNotEqualsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals <em>String Variable Not Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals
+   * @generated
+   */
+  public Adapter createStringVariableNotEqualsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals <em>Int Variable Not Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals
+   * @generated
+   */
+  public Adapter createIntVariableNotEqualsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals <em>Boolean Variable Not Equals</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals
+   * @generated
+   */
+  public Adapter createBooleanVariableNotEqualsAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Mock <em>Mock</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Mock
+   * @generated
+   */
+  public Adapter createMockAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockReference <em>Mock Reference</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.MockReference
+   * @generated
+   */
+  public Adapter createMockReferenceAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock <em>External Service Mock</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock
+   * @generated
+   */
+  public Adapter createExternalServiceMockAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock <em>Delegate Mock</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock
+   * @generated
+   */
+  public Adapter createDelegateMockAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule <em>Mocking Rule</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule
+   * @generated
+   */
+  public Adapter createMockingRuleAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock <em>Manual Mock</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock
+   * @generated
+   */
+  public Adapter createManualMockAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.Compare <em>Compare</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.Compare
+   * @generated
+   */
+  public Adapter createCompareAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare <em>String Compare</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare
+   * @generated
+   */
+  public Adapter createStringCompareAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare <em>Int Compare</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare
+   * @generated
+   */
+  public Adapter createIntCompareAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for an object of class '{@link de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare <em>Boolean Compare</em>}'.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null so that we can easily ignore cases;
+   * it's useful to ignore a case when inheritance will catch all the cases anyway.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @see de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare
+   * @generated
+   */
+  public Adapter createBooleanCompareAdapter()
+  {
+    return null;
+  }
+
+  /**
+   * Creates a new adapter for the default case.
+   * <!-- begin-user-doc -->
+   * This default implementation returns null.
+   * <!-- end-user-doc -->
+   * @return the new adapter.
+   * @generated
+   */
+  public Adapter createEObjectAdapter()
+  {
+    return null;
+  }
+
+} //TestgeneratorDSLAdapterFactory
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -1245,3 +2494,4 @@ public class TestgeneratorDSLAdapterFactory extends AdapterFactoryImpl
   }
 
 } //TestgeneratorDSLAdapterFactory
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/util/TestgeneratorDSLSwitch.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/util/TestgeneratorDSLSwitch.java
index 453c80cb07a50d039ac35c0f47a1026444df046c..6ef9501a34d383b29ec84eb6ab90dd2a780dda86 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/util/TestgeneratorDSLSwitch.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/testgeneratorDSL/util/TestgeneratorDSLSwitch.java
@@ -1,3 +1,1460 @@
+<<<<<<< HEAD
+/**
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.testgeneratorDSL.util;
+
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Compare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Declaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndCheck;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndChecks;
+import de.fhmuenster.masterthesis.testgeneratorDSL.EndFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopicReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.GatewayFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Loop;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Mock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockingRule;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Model;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ScriptTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StartFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringCompare;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage;
+import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Variable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclarations;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableNotEquals;
+import de.fhmuenster.masterthesis.testgeneratorDSL.VariableReference;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage
+ * @generated
+ */
+public class TestgeneratorDSLSwitch<T> extends Switch<T>
+{
+  /**
+   * The cached model package
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  protected static TestgeneratorDSLPackage modelPackage;
+
+  /**
+   * Creates an instance of the switch.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @generated
+   */
+  public TestgeneratorDSLSwitch()
+  {
+    if (modelPackage == null)
+    {
+      modelPackage = TestgeneratorDSLPackage.eINSTANCE;
+    }
+  }
+
+  /**
+   * Checks whether this is a switch for the given package.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @param ePackage the package in question.
+   * @return whether this is a switch for the given package.
+   * @generated
+   */
+  @Override
+  protected boolean isSwitchFor(EPackage ePackage)
+  {
+    return ePackage == modelPackage;
+  }
+
+  /**
+   * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+   * <!-- begin-user-doc -->
+   * <!-- end-user-doc -->
+   * @return the first non-null result returned by a <code>caseXXX</code> call.
+   * @generated
+   */
+  @Override
+  protected T doSwitch(int classifierID, EObject theEObject)
+  {
+    switch (classifierID)
+    {
+      case TestgeneratorDSLPackage.MODEL:
+      {
+        Model model = (Model)theEObject;
+        T result = caseModel(model);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.DECLARATION:
+      {
+        Declaration declaration = (Declaration)theEObject;
+        T result = caseDeclaration(declaration);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.BPMN_DIAGRAM:
+      {
+        BPMNDiagram bpmnDiagram = (BPMNDiagram)theEObject;
+        T result = caseBPMNDiagram(bpmnDiagram);
+        if (result == null) result = caseDeclaration(bpmnDiagram);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.BPMN_REFERENCE:
+      {
+        BPMNReference bpmnReference = (BPMNReference)theEObject;
+        T result = caseBPMNReference(bpmnReference);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.FLOW_ELEMENT:
+      {
+        FlowElement flowElement = (FlowElement)theEObject;
+        T result = caseFlowElement(flowElement);
+        if (result == null) result = caseDeclaration(flowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.START_FLOW_ELEMENT:
+      {
+        StartFlowElement startFlowElement = (StartFlowElement)theEObject;
+        T result = caseStartFlowElement(startFlowElement);
+        if (result == null) result = caseFlowElement(startFlowElement);
+        if (result == null) result = caseDeclaration(startFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.END_FLOW_ELEMENT:
+      {
+        EndFlowElement endFlowElement = (EndFlowElement)theEObject;
+        T result = caseEndFlowElement(endFlowElement);
+        if (result == null) result = caseFlowElement(endFlowElement);
+        if (result == null) result = caseDeclaration(endFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.USER_TASK_FLOW_ELEMENT:
+      {
+        UserTaskFlowElement userTaskFlowElement = (UserTaskFlowElement)theEObject;
+        T result = caseUserTaskFlowElement(userTaskFlowElement);
+        if (result == null) result = caseFlowElement(userTaskFlowElement);
+        if (result == null) result = caseDeclaration(userTaskFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.MANUAL_TASK_FLOW_ELEMENT:
+      {
+        ManualTaskFlowElement manualTaskFlowElement = (ManualTaskFlowElement)theEObject;
+        T result = caseManualTaskFlowElement(manualTaskFlowElement);
+        if (result == null) result = caseFlowElement(manualTaskFlowElement);
+        if (result == null) result = caseDeclaration(manualTaskFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.SCRIPT_TASK_FLOW_ELEMENT:
+      {
+        ScriptTaskFlowElement scriptTaskFlowElement = (ScriptTaskFlowElement)theEObject;
+        T result = caseScriptTaskFlowElement(scriptTaskFlowElement);
+        if (result == null) result = caseFlowElement(scriptTaskFlowElement);
+        if (result == null) result = caseDeclaration(scriptTaskFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.SERVICE_TASK_FLOW_ELEMENT:
+      {
+        ServiceTaskFlowElement serviceTaskFlowElement = (ServiceTaskFlowElement)theEObject;
+        T result = caseServiceTaskFlowElement(serviceTaskFlowElement);
+        if (result == null) result = caseFlowElement(serviceTaskFlowElement);
+        if (result == null) result = caseDeclaration(serviceTaskFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_FLOW_ELEMENT:
+      {
+        DelegateServiceTaskFlowElement delegateServiceTaskFlowElement = (DelegateServiceTaskFlowElement)theEObject;
+        T result = caseDelegateServiceTaskFlowElement(delegateServiceTaskFlowElement);
+        if (result == null) result = caseServiceTaskFlowElement(delegateServiceTaskFlowElement);
+        if (result == null) result = caseFlowElement(delegateServiceTaskFlowElement);
+        if (result == null) result = caseDeclaration(delegateServiceTaskFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_TASK_FLOW_ELEMENT:
+      {
+        ExternalServiceTaskFlowElement externalServiceTaskFlowElement = (ExternalServiceTaskFlowElement)theEObject;
+        T result = caseExternalServiceTaskFlowElement(externalServiceTaskFlowElement);
+        if (result == null) result = caseServiceTaskFlowElement(externalServiceTaskFlowElement);
+        if (result == null) result = caseFlowElement(externalServiceTaskFlowElement);
+        if (result == null) result = caseDeclaration(externalServiceTaskFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.BUSINESS_RULE_TASK_FLOW_ELEMENT:
+      {
+        BusinessRuleTaskFlowElement businessRuleTaskFlowElement = (BusinessRuleTaskFlowElement)theEObject;
+        T result = caseBusinessRuleTaskFlowElement(businessRuleTaskFlowElement);
+        if (result == null) result = caseFlowElement(businessRuleTaskFlowElement);
+        if (result == null) result = caseDeclaration(businessRuleTaskFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.GATEWAY_FLOW_ELEMENT:
+      {
+        GatewayFlowElement gatewayFlowElement = (GatewayFlowElement)theEObject;
+        T result = caseGatewayFlowElement(gatewayFlowElement);
+        if (result == null) result = caseFlowElement(gatewayFlowElement);
+        if (result == null) result = caseDeclaration(gatewayFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.SEQUENCE_FLOW_ELEMENT:
+      {
+        SequenceFlowElement sequenceFlowElement = (SequenceFlowElement)theEObject;
+        T result = caseSequenceFlowElement(sequenceFlowElement);
+        if (result == null) result = caseFlowElement(sequenceFlowElement);
+        if (result == null) result = caseDeclaration(sequenceFlowElement);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.FLOW_ELEMENT_REFERENCE:
+      {
+        FlowElementReference flowElementReference = (FlowElementReference)theEObject;
+        T result = caseFlowElementReference(flowElementReference);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.DELEGATE_SERVICE_TASK_REFERENCE:
+      {
+        DelegateServiceTaskReference delegateServiceTaskReference = (DelegateServiceTaskReference)theEObject;
+        T result = caseDelegateServiceTaskReference(delegateServiceTaskReference);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.EXTERNAL_TOPIC:
+      {
+        ExternalTopic externalTopic = (ExternalTopic)theEObject;
+        T result = caseExternalTopic(externalTopic);
+        if (result == null) result = caseDeclaration(externalTopic);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.EXTERNAL_TOPIC_REFERENCE:
+      {
+        ExternalTopicReference externalTopicReference = (ExternalTopicReference)theEObject;
+        T result = caseExternalTopicReference(externalTopicReference);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.VARIABLE:
+      {
+        Variable variable = (Variable)theEObject;
+        T result = caseVariable(variable);
+        if (result == null) result = caseDeclaration(variable);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.VARIABLE_REFERENCE:
+      {
+        VariableReference variableReference = (VariableReference)theEObject;
+        T result = caseVariableReference(variableReference);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.STRING_VARIABLE:
+      {
+        StringVariable stringVariable = (StringVariable)theEObject;
+        T result = caseStringVariable(stringVariable);
+        if (result == null) result = caseVariable(stringVariable);
+        if (result == null) result = caseDeclaration(stringVariable);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.INT_VARIABLE:
+      {
+        IntVariable intVariable = (IntVariable)theEObject;
+        T result = caseIntVariable(intVariable);
+        if (result == null) result = caseVariable(intVariable);
+        if (result == null) result = caseDeclaration(intVariable);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE:
+      {
+        BooleanVariable booleanVariable = (BooleanVariable)theEObject;
+        T result = caseBooleanVariable(booleanVariable);
+        if (result == null) result = caseVariable(booleanVariable);
+        if (result == null) result = caseDeclaration(booleanVariable);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.LOOP:
+      {
+        Loop loop = (Loop)theEObject;
+        T result = caseLoop(loop);
+        if (result == null) result = caseDeclaration(loop);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.FLOW:
+      {
+        Flow flow = (Flow)theEObject;
+        T result = caseFlow(flow);
+        if (result == null) result = caseDeclaration(flow);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.FLOW_REFERENCE:
+      {
+        FlowReference flowReference = (FlowReference)theEObject;
+        T result = caseFlowReference(flowReference);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.TEST:
+      {
+        Test test = (Test)theEObject;
+        T result = caseTest(test);
+        if (result == null) result = caseDeclaration(test);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATIONS:
+      {
+        VariableDeclarations variableDeclarations = (VariableDeclarations)theEObject;
+        T result = caseVariableDeclarations(variableDeclarations);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.END_CHECKS:
+      {
+        EndChecks endChecks = (EndChecks)theEObject;
+        T result = caseEndChecks(endChecks);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.VARIABLE_DECLARATION:
+      {
+        VariableDeclaration variableDeclaration = (VariableDeclaration)theEObject;
+        T result = caseVariableDeclaration(variableDeclaration);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.STRING_VARIABLE_DECLARATION:
+      {
+        StringVariableDeclaration stringVariableDeclaration = (StringVariableDeclaration)theEObject;
+        T result = caseStringVariableDeclaration(stringVariableDeclaration);
+        if (result == null) result = caseVariableDeclaration(stringVariableDeclaration);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.INT_VARIABLE_DECLARATION:
+      {
+        IntVariableDeclaration intVariableDeclaration = (IntVariableDeclaration)theEObject;
+        T result = caseIntVariableDeclaration(intVariableDeclaration);
+        if (result == null) result = caseVariableDeclaration(intVariableDeclaration);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_DECLARATION:
+      {
+        BooleanVariableDeclaration booleanVariableDeclaration = (BooleanVariableDeclaration)theEObject;
+        T result = caseBooleanVariableDeclaration(booleanVariableDeclaration);
+        if (result == null) result = caseVariableDeclaration(booleanVariableDeclaration);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.END_CHECK:
+      {
+        EndCheck endCheck = (EndCheck)theEObject;
+        T result = caseEndCheck(endCheck);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.VARIABLE_EQUALS:
+      {
+        VariableEquals variableEquals = (VariableEquals)theEObject;
+        T result = caseVariableEquals(variableEquals);
+        if (result == null) result = caseEndCheck(variableEquals);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.STRING_VARIABLE_EQUALS:
+      {
+        StringVariableEquals stringVariableEquals = (StringVariableEquals)theEObject;
+        T result = caseStringVariableEquals(stringVariableEquals);
+        if (result == null) result = caseVariableEquals(stringVariableEquals);
+        if (result == null) result = caseEndCheck(stringVariableEquals);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.INT_VARIABLE_EQUALS:
+      {
+        IntVariableEquals intVariableEquals = (IntVariableEquals)theEObject;
+        T result = caseIntVariableEquals(intVariableEquals);
+        if (result == null) result = caseVariableEquals(intVariableEquals);
+        if (result == null) result = caseEndCheck(intVariableEquals);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_EQUALS:
+      {
+        BooleanVariableEquals booleanVariableEquals = (BooleanVariableEquals)theEObject;
+        T result = caseBooleanVariableEquals(booleanVariableEquals);
+        if (result == null) result = caseVariableEquals(booleanVariableEquals);
+        if (result == null) result = caseEndCheck(booleanVariableEquals);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.VARIABLE_NOT_EQUALS:
+      {
+        VariableNotEquals variableNotEquals = (VariableNotEquals)theEObject;
+        T result = caseVariableNotEquals(variableNotEquals);
+        if (result == null) result = caseEndCheck(variableNotEquals);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.STRING_VARIABLE_NOT_EQUALS:
+      {
+        StringVariableNotEquals stringVariableNotEquals = (StringVariableNotEquals)theEObject;
+        T result = caseStringVariableNotEquals(stringVariableNotEquals);
+        if (result == null) result = caseVariableNotEquals(stringVariableNotEquals);
+        if (result == null) result = caseEndCheck(stringVariableNotEquals);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.INT_VARIABLE_NOT_EQUALS:
+      {
+        IntVariableNotEquals intVariableNotEquals = (IntVariableNotEquals)theEObject;
+        T result = caseIntVariableNotEquals(intVariableNotEquals);
+        if (result == null) result = caseVariableNotEquals(intVariableNotEquals);
+        if (result == null) result = caseEndCheck(intVariableNotEquals);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.BOOLEAN_VARIABLE_NOT_EQUALS:
+      {
+        BooleanVariableNotEquals booleanVariableNotEquals = (BooleanVariableNotEquals)theEObject;
+        T result = caseBooleanVariableNotEquals(booleanVariableNotEquals);
+        if (result == null) result = caseVariableNotEquals(booleanVariableNotEquals);
+        if (result == null) result = caseEndCheck(booleanVariableNotEquals);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.MOCK:
+      {
+        Mock mock = (Mock)theEObject;
+        T result = caseMock(mock);
+        if (result == null) result = caseDeclaration(mock);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.MOCK_REFERENCE:
+      {
+        MockReference mockReference = (MockReference)theEObject;
+        T result = caseMockReference(mockReference);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.EXTERNAL_SERVICE_MOCK:
+      {
+        ExternalServiceMock externalServiceMock = (ExternalServiceMock)theEObject;
+        T result = caseExternalServiceMock(externalServiceMock);
+        if (result == null) result = caseMock(externalServiceMock);
+        if (result == null) result = caseDeclaration(externalServiceMock);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.DELEGATE_MOCK:
+      {
+        DelegateMock delegateMock = (DelegateMock)theEObject;
+        T result = caseDelegateMock(delegateMock);
+        if (result == null) result = caseMock(delegateMock);
+        if (result == null) result = caseDeclaration(delegateMock);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.MOCKING_RULE:
+      {
+        MockingRule mockingRule = (MockingRule)theEObject;
+        T result = caseMockingRule(mockingRule);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.MANUAL_MOCK:
+      {
+        ManualMock manualMock = (ManualMock)theEObject;
+        T result = caseManualMock(manualMock);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.COMPARE:
+      {
+        Compare compare = (Compare)theEObject;
+        T result = caseCompare(compare);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.STRING_COMPARE:
+      {
+        StringCompare stringCompare = (StringCompare)theEObject;
+        T result = caseStringCompare(stringCompare);
+        if (result == null) result = caseCompare(stringCompare);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.INT_COMPARE:
+      {
+        IntCompare intCompare = (IntCompare)theEObject;
+        T result = caseIntCompare(intCompare);
+        if (result == null) result = caseCompare(intCompare);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      case TestgeneratorDSLPackage.BOOLEAN_COMPARE:
+      {
+        BooleanCompare booleanCompare = (BooleanCompare)theEObject;
+        T result = caseBooleanCompare(booleanCompare);
+        if (result == null) result = caseCompare(booleanCompare);
+        if (result == null) result = defaultCase(theEObject);
+        return result;
+      }
+      default: return defaultCase(theEObject);
+    }
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseModel(Model object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Declaration</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseDeclaration(Declaration object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>BPMN Diagram</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>BPMN Diagram</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBPMNDiagram(BPMNDiagram object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>BPMN Reference</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>BPMN Reference</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBPMNReference(BPMNReference object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseFlowElement(FlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Start Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Start Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseStartFlowElement(StartFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>End Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>End Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseEndFlowElement(EndFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>User Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>User Task Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseUserTaskFlowElement(UserTaskFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Manual Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Manual Task Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseManualTaskFlowElement(ManualTaskFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Script Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Script Task Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseScriptTaskFlowElement(ScriptTaskFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Service Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Service Task Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseServiceTaskFlowElement(ServiceTaskFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Delegate Service Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Delegate Service Task Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseDelegateServiceTaskFlowElement(DelegateServiceTaskFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>External Service Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>External Service Task Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseExternalServiceTaskFlowElement(ExternalServiceTaskFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Business Rule Task Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Business Rule Task Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBusinessRuleTaskFlowElement(BusinessRuleTaskFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Gateway Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Gateway Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseGatewayFlowElement(GatewayFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Sequence Flow Element</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Sequence Flow Element</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseSequenceFlowElement(SequenceFlowElement object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Flow Element Reference</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Flow Element Reference</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseFlowElementReference(FlowElementReference object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Delegate Service Task Reference</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Delegate Service Task Reference</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseDelegateServiceTaskReference(DelegateServiceTaskReference object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>External Topic</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>External Topic</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseExternalTopic(ExternalTopic object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>External Topic Reference</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>External Topic Reference</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseExternalTopicReference(ExternalTopicReference object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Variable</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Variable</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseVariable(Variable object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Variable Reference</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Variable Reference</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseVariableReference(VariableReference object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>String Variable</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>String Variable</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseStringVariable(StringVariable object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Int Variable</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Int Variable</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseIntVariable(IntVariable object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Boolean Variable</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Boolean Variable</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBooleanVariable(BooleanVariable object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Loop</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Loop</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseLoop(Loop object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Flow</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Flow</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseFlow(Flow object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Flow Reference</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Flow Reference</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseFlowReference(FlowReference object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Test</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Test</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseTest(Test object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Variable Declarations</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Variable Declarations</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseVariableDeclarations(VariableDeclarations object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>End Checks</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>End Checks</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseEndChecks(EndChecks object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Variable Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Variable Declaration</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseVariableDeclaration(VariableDeclaration object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>String Variable Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>String Variable Declaration</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseStringVariableDeclaration(StringVariableDeclaration object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Int Variable Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Int Variable Declaration</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseIntVariableDeclaration(IntVariableDeclaration object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Boolean Variable Declaration</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Boolean Variable Declaration</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBooleanVariableDeclaration(BooleanVariableDeclaration object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>End Check</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>End Check</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseEndCheck(EndCheck object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Variable Equals</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Variable Equals</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseVariableEquals(VariableEquals object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>String Variable Equals</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>String Variable Equals</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseStringVariableEquals(StringVariableEquals object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Int Variable Equals</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Int Variable Equals</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseIntVariableEquals(IntVariableEquals object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Boolean Variable Equals</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Boolean Variable Equals</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBooleanVariableEquals(BooleanVariableEquals object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Variable Not Equals</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Variable Not Equals</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseVariableNotEquals(VariableNotEquals object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>String Variable Not Equals</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>String Variable Not Equals</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseStringVariableNotEquals(StringVariableNotEquals object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Int Variable Not Equals</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Int Variable Not Equals</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseIntVariableNotEquals(IntVariableNotEquals object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Boolean Variable Not Equals</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Boolean Variable Not Equals</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBooleanVariableNotEquals(BooleanVariableNotEquals object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Mock</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Mock</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseMock(Mock object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Mock Reference</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Mock Reference</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseMockReference(MockReference object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>External Service Mock</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>External Service Mock</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseExternalServiceMock(ExternalServiceMock object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Delegate Mock</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Delegate Mock</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseDelegateMock(DelegateMock object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Mocking Rule</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Mocking Rule</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseMockingRule(MockingRule object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Manual Mock</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Manual Mock</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseManualMock(ManualMock object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Compare</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Compare</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseCompare(Compare object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>String Compare</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>String Compare</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseStringCompare(StringCompare object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Int Compare</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Int Compare</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseIntCompare(IntCompare object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>Boolean Compare</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>Boolean Compare</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+   * @generated
+   */
+  public T caseBooleanCompare(BooleanCompare object)
+  {
+    return null;
+  }
+
+  /**
+   * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+   * <!-- begin-user-doc -->
+   * This implementation returns null;
+   * returning a non-null result will terminate the switch, but this is the last case anyway.
+   * <!-- end-user-doc -->
+   * @param object the target of the switch.
+   * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+   * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+   * @generated
+   */
+  @Override
+  public T defaultCase(EObject object)
+  {
+    return null;
+  }
+
+} //TestgeneratorDSLSwitch
+=======
 /**
  * generated by Xtext 2.25.0
  */
@@ -1453,3 +2910,4 @@ public class TestgeneratorDSLSwitch<T> extends Switch<T>
   }
 
 } //TestgeneratorDSLSwitch
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/validation/AbstractTestgeneratorDSLValidator.java b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/validation/AbstractTestgeneratorDSLValidator.java
index b1e67762b0702fa65bf4709924dce98eb05cca0a..de25ff048ef5f87db740394b4c5b7315560366e7 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/validation/AbstractTestgeneratorDSLValidator.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src-gen/de/fhmuenster/masterthesis/validation/AbstractTestgeneratorDSLValidator.java
@@ -1,3 +1,24 @@
+<<<<<<< HEAD
+/*
+ * generated by Xtext 2.25.0
+ */
+package de.fhmuenster.masterthesis.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public abstract class AbstractTestgeneratorDSLValidator extends AbstractDeclarativeValidator {
+	
+	@Override
+	protected List<EPackage> getEPackages() {
+		List<EPackage> result = new ArrayList<EPackage>();
+		result.add(de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLPackage.eINSTANCE);
+		return result;
+	}
+}
+=======
 /*
  * generated by Xtext 2.25.0
  */
@@ -17,3 +38,4 @@ public abstract class AbstractTestgeneratorDSLValidator extends AbstractDeclarat
 		return result;
 	}
 }
+>>>>>>> master
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/TestgeneratorDSL.xtext b/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/TestgeneratorDSL.xtext
index 940a0294f0202e142b46f6c70a6164e28e292870..24e30d4ca8adb82d9eae4c774af1c1804dfc8df3 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/TestgeneratorDSL.xtext
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/TestgeneratorDSL.xtext
@@ -125,6 +125,7 @@ FlowReference:
 
 Test:
 	'Test' name=ID 'for' flowReference=FlowReference 
+		('with' 'priority' priority=INT)?
 		(declarations+=VariableDeclarations (SEPARATOR declarations+=VariableDeclarations)*)?
 		(endCheck=EndChecks)?
 		('with' 'mocks' ASSOCIATION LIST_OPEN (mocks+=MockReference (SEPARATOR mocks+=MockReference)*)? LIST_CLOSED)?
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/serialization/TestgeneratorDSLObjectCreator.java b/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/serialization/TestgeneratorDSLObjectCreator.java
index f0aad086d7c993b9636769ed77308962d5ed4c0c..f35d22c96c39dc53bc572dac157c85e24e68ed71 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/serialization/TestgeneratorDSLObjectCreator.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/serialization/TestgeneratorDSLObjectCreator.java
@@ -276,7 +276,7 @@ public class TestgeneratorDSLObjectCreator {
 		return manualMock;
 	}
 	
-	public static Test createTest(String name, Flow flow, List<VariableDeclarations> variableDeclarations, EndChecks endChecks, List<Mock> mocks) {
+	public static Test createTest(String name, Flow flow, List<VariableDeclarations> variableDeclarations, EndChecks endChecks, List<Mock> mocks, int priority) {
 		FlowReference flowReference = TestgeneratorDSLFactory.eINSTANCE.createFlowReference();
 		flowReference.setRef(flow);
 		
@@ -290,6 +290,7 @@ public class TestgeneratorDSLObjectCreator {
 		
 		Test test = TestgeneratorDSLFactory.eINSTANCE.createTest();
 		test.setName(name);
+		test.setPriority(priority);
 		test.setFlowReference(flowReference);
 		test.getDeclarations().addAll(variableDeclarations);
 		test.getMocks().addAll(mockRefs);
diff --git a/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/serialization/TestgeneratorDSLSerializer.java b/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/serialization/TestgeneratorDSLSerializer.java
index 56ffdf4b0929b3ef618f9abd67efec2c9cb1c7a8..4f099df5177511cdd92f0627f7355a8f785cd182 100644
--- a/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/serialization/TestgeneratorDSLSerializer.java
+++ b/de.fhmuenster.masterthesis.textgeneratordsl/src/de/fhmuenster/masterthesis/serialization/TestgeneratorDSLSerializer.java
@@ -1,457 +1,458 @@
-package de.fhmuenster.masterthesis.serialization;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.xtext.serializer.impl.Serializer;
-
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
-import de.fhmuenster.masterthesis.TestgeneratorDSLRuntimeModule;
-import de.fhmuenster.masterthesis.TestgeneratorDSLStandaloneSetup;
-import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
-import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
-import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock;
-import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
-import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock;
-import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement;
-import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
-import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
-import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
-import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
-import de.fhmuenster.masterthesis.testgeneratorDSL.Loop;
-import de.fhmuenster.masterthesis.testgeneratorDSL.Mock;
-import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
-import de.fhmuenster.masterthesis.testgeneratorDSL.Model;
-import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
-import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
-import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
-import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLFactory;
-import de.fhmuenster.masterthesis.testgeneratorDSL.Variable;
-import de.fhmuenster.masterthesis.utils.TestgeneratorDSLUtils;
-
-@SuppressWarnings("restriction")
-public class TestgeneratorDSLSerializer {
-
-	private File dslFile;
-	private Model model;
-	private Serializer serializer;
-
-	public TestgeneratorDSLSerializer(String path) throws IOException {
-		dslFile = new File(path);
-
-		// Deserialization
-		new TestgeneratorDSLStandaloneSetup().createInjectorAndDoEMFRegistration();
-		createOrGetModel(path);
-
-		// Serialization
-		Injector injector = Guice.createInjector(new TestgeneratorDSLRuntimeModule());
-		serializer = injector.getInstance(Serializer.class);
-
-	}
-
-	private void createOrGetModel(String path) throws IOException {
-		ResourceSet rs = new ResourceSetImpl();
-		URI uri = URI.createFileURI(path);
-
-		if (!dslFile.exists()) {
-			String dslFileDirectory = dslFile.toPath().getParent().toString();
-			File dslFileDir = new File(dslFileDirectory);
-			dslFileDir.mkdirs();
-			dslFile.createNewFile();
-		}
-		
-		Resource resource = rs.getResource(uri, true);
-		if(resource.getContents().isEmpty()) {
-			model = TestgeneratorDSLObjectCreator.createModel();
-			resource.getContents().add(model);
-		} else {
-			model = (Model) resource.getContents().get(0);
-		}
-	}
-
-	public BPMNDiagram getBPMNDiagram(String id) {
-		Optional<BPMNDiagram> diagramOpt = model.getDeclarations().stream() //
-				.filter(decl -> decl instanceof BPMNDiagram) //
-				.map(decl -> ((BPMNDiagram) decl)) //
-				.filter(diagram -> diagram.getName().equals(id)) //
-				.findFirst(); //
-
-		return diagramOpt.isPresent() ? diagramOpt.get() : null;
-	}
-
-	public ExternalServiceTaskFlowElement getExternalServiceTaskFlowElement(String name) {
-		Optional<ExternalServiceTaskFlowElement> elementOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof ExternalServiceTaskFlowElement) //
-				.map(f -> ((ExternalServiceTaskFlowElement) f)) //
-				.filter(element -> element.getName().equals(name)) //
-				.findFirst(); //
-		
-		return elementOpt.isPresent() ? elementOpt.get() : null;
-	}
-	
-	public List<ExternalServiceTaskFlowElement> getExternalServiceTaskFlowElements() {
-		List<ExternalServiceTaskFlowElement> externalServiceTaskElements = model.getDeclarations().stream() //
-				.filter(d -> d instanceof ExternalServiceTaskFlowElement) //
-				.map(f -> ((ExternalServiceTaskFlowElement) f)) //
-				.collect(Collectors.toList()); //
-		
-		return externalServiceTaskElements;
-	}
-	
-	public DelegateServiceTaskFlowElement getDelegateServiceTaskFlowElement(String name) {
-		Optional<DelegateServiceTaskFlowElement> elementOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof DelegateServiceTaskFlowElement) //
-				.map(f -> ((DelegateServiceTaskFlowElement) f)) //
-				.filter(element -> element.getName().equals(name)) //
-				.findFirst(); //
-		
-		return elementOpt.isPresent() ? elementOpt.get() : null;
-	}
-	
-	public List<ServiceTaskFlowElement> getDelegateServiceTaskFlowElements() {
-		List<ServiceTaskFlowElement> delegateServiceTaskElements = model.getDeclarations().stream() //
-				.filter(d -> d instanceof DelegateServiceTaskFlowElement) //
-				.map(f -> ((ServiceTaskFlowElement) f)) //
-				.collect(Collectors.toList()); //
-		
-		return delegateServiceTaskElements;
-	}
-	
-	public List<FlowElement> getFlowElements() {
-		return model.getDeclarations().stream() //
-				.filter(decl -> decl instanceof FlowElement) //
-				.map(f -> ((FlowElement) f)) //
-				.collect(Collectors.toList()); //
-	}
-
-	public List<FlowElement> getFlowElements(List<String> ids) {
-		List<FlowElement> flowElements = model.getDeclarations().stream() //
-				.filter(decl -> decl instanceof FlowElement) //
-				.map(f -> ((FlowElement) f)) //
-				.filter(f -> ids.contains(f.getName())) //
-				.collect(Collectors.toList()); //
-
-		flowElements.sort(new ReferenceComparator(ids));
-
-		return flowElements;
-	}
-
-	public List<Flow> getFlows() {
-		return model.getDeclarations().stream() //
-				.filter(d -> d instanceof Flow) //
-				.map(f -> ((Flow) f)) //
-				.collect(Collectors.toList()); //
-	}
-	
-	public Flow getFlow(String name) {
-		Optional<Flow> flowOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof Flow) //
-				.map(f -> ((Flow) f)) //
-				.filter(flow -> flow.getName().equals(name)) //
-				.findFirst(); //
-		
-		return flowOpt.isPresent() ? flowOpt.get() : null;
-	}
-	
-	public List<Variable> getVariables() {
-		return model.getDeclarations().stream() //
-			.filter(d -> d instanceof Variable) //
-			.map(varDecl -> ((Variable) varDecl)) //
-			.collect(Collectors.toList()); //
-	}
-	
-	public List<VariableProposal<?>> getVariableProposals() {
-		List<VariableProposal<?>> variableProposals = new ArrayList<>();
-		
-		List<VariableProposal<String>> stringProposals = model.getDeclarations().stream() //
-			.filter(d -> d instanceof StringVariable) //
-			.map(varDecl -> ((StringVariable) varDecl)) //
-			.map(stringVar -> new VariableProposal<String>(stringVar.getName(), stringVar.getProposals(), String.class))
-			.collect(Collectors.toList());
-		
-		List<VariableProposal<Integer>> intProposals = model.getDeclarations().stream() //
-				.filter(d -> d instanceof IntVariable) //
-				.map(varDecl -> ((IntVariable) varDecl)) //
-				.map(intVar -> new VariableProposal<Integer>(intVar.getName(), intVar.getProposals(), Integer.class))
-				.collect(Collectors.toList());
-		
-		List<VariableProposal<Boolean>> booleanProposals = model.getDeclarations().stream() //
-				.filter(d -> d instanceof BooleanVariable) //
-				.map(varDecl -> ((BooleanVariable) varDecl)) //
-				.map(boolVar -> new VariableProposal<Boolean>(boolVar.getName(), TestgeneratorDSLUtils.mapDSLBoolean(boolVar.getProposals()), Boolean.class))
-				.collect(Collectors.toList());
-		
-		variableProposals.addAll(stringProposals);
-		variableProposals.addAll(intProposals);
-		variableProposals.addAll(booleanProposals);
-		return variableProposals;
-	}
-
-	public Mock getMock(String name) {
-		Optional<Mock> mockOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof Mock) //
-				.map(mock -> ((Mock) mock)) //
-				.filter(mock -> mock.getName().equals(name)) //
-				.findFirst(); //
-		
-		return mockOpt.isPresent() ? mockOpt.get() : null;
-	}
-	
-	public List<ExternalServiceMock> getExternalServiceMocks(ExternalServiceTaskFlowElement serviceTask) {
-		List<ExternalServiceMock> externalServiceMocks = model.getDeclarations().stream() //
-				.filter(d -> d instanceof ExternalServiceMock) //
-				.map(mock -> ((ExternalServiceMock) mock)) //
-				.filter(mock -> mock.getExternalTopic().equals(serviceTask.getExternalTopic())) //
-				.collect(Collectors.toList()); //
-		
-		return externalServiceMocks;
-	}
-	
-	public List<ExternalServiceMock> getExternalServiceMocks() {
-		List<ExternalServiceMock> externalServiceMocks = model.getDeclarations().stream() //
-				.filter(d -> d instanceof ExternalServiceMock) //
-				.map(mock -> ((ExternalServiceMock) mock)) //
-				.collect(Collectors.toList()); //
-		
-		return externalServiceMocks;
-	}
-	
-	public ExternalServiceMock getExternalServiceMock(String name) {
-		Optional<ExternalServiceMock> externalServiceMockOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof ExternalServiceMock) //
-				.map(mock -> ((ExternalServiceMock) mock)) //
-				.filter(mock -> mock.getName().equals(name)) //
-				.findFirst(); //
-		
-		return externalServiceMockOpt.isPresent() ? externalServiceMockOpt.get() : null;
-	}
-	
-	public List<DelegateMock> getDelegateMocks(DelegateServiceTaskFlowElement serviceTask) {
-		List<DelegateMock> delegateMocks = model.getDeclarations().stream() //
-				.filter(d -> d instanceof DelegateMock) //
-				.map(mock -> ((DelegateMock) mock)) //
-				.filter(mock -> mock.getServiceTaskReference().getRef().getName().equals(serviceTask.getName())) //
-				.collect(Collectors.toList()); //
-		
-		return delegateMocks;
-	}
-	
-	public List<DelegateMock> getDelegateMocks() {
-		List<DelegateMock> delegateMocks = model.getDeclarations().stream() //
-				.filter(d -> d instanceof DelegateMock) //
-				.map(mock -> ((DelegateMock) mock)) //
-				.collect(Collectors.toList()); //
-		
-		return delegateMocks;
-	}
-	
-	public DelegateMock getDelegateMock(String name) {
-		Optional<DelegateMock> delegateMockOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof DelegateMock) //
-				.map(mock -> ((DelegateMock) mock)) //
-				.filter(mock -> mock.getName().equals(name)) //
-				.findFirst(); //
-		
-		return delegateMockOpt.isPresent() ? delegateMockOpt.get() : null;
-	}
-	
-	public void deleteMock(String name) {
-		Optional<Mock> mockOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof Mock) //
-				.map(mock -> ((Mock) mock)) //
-				.filter(mock -> mock.getName().equals(name)) //
-				.findFirst(); //
-		
-		if(mockOpt.isPresent()) {
-			model.getDeclarations().remove(mockOpt.get());
-		}
-	}
-	
-	public boolean hasMockReferences(String mockRef) {
-		return model.getDeclarations().stream() //
-				.filter(d -> d instanceof Test) //
-				.map(test -> ((Test) test)) //
-				.filter(test -> containsMockReference(test.getMocks(), mockRef))
-				.findAny() //
-				.isPresent(); //
-	}
-	
-	public List<Test> getAndDeleteOldMockReferences(String oldMockRef) {
-		List<Test> mockRefTests = model.getDeclarations().stream() //
-			.filter(d -> d instanceof Test) //
-			.map(test -> ((Test) test)) //
-			.filter(test -> containsMockReference(test.getMocks(), oldMockRef))
-			.collect(Collectors.toList()); //
-		
-		mockRefTests.stream() //
-			.map(test -> test.getMocks()) //
-			.forEach(references -> references.removeIf(ref -> ref.getRef().getName().equals(oldMockRef))); //
-		
-		return mockRefTests;
-	}
-	
-	private boolean containsMockReference(EList<MockReference> mockReferences, String oldMockRef) {
-		return mockReferences.stream() //
-			.filter(ref -> ref.getRef().getName().equals(oldMockRef)) //
-			.findAny() //
-			.isPresent(); //
-	}
-	
-	public void addMockToTest(Test test, Mock mock) {
-		MockReference mockReference = TestgeneratorDSLFactory.eINSTANCE.createMockReference();
-		mockReference.setRef(mock);
-		
-		test.getMocks().add(mockReference);
-	}
-	
-	public Test getTest(String name) {
-		Optional<Test> testOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof Test) //
-				.map(test -> ((Test) test)) //
-				.filter(test -> test.getName().equals(name)) //
-				.findFirst(); //
-		
-		return testOpt.isPresent() ? testOpt.get() : null;
-	}
-	
-	public void deleteTest(String name) {
-		Optional<Test> testOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof Test) //
-				.map(test -> ((Test) test)) //
-				.filter(test -> test.getName().equals(name)) //
-				.findFirst(); //
-		
-		if(testOpt.isPresent()) {
-			model.getDeclarations().remove(testOpt.get());
-		}
-	}
-	
-	public Map<String, Long> getFlowTestCount() {
-		return model.getDeclarations().stream()
-			.filter(d -> d instanceof Test) //
-			.map(d -> ((Test) d).getFlowReference().getRef().getName()) //
-			.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
-	}
-	
-	public List<Test> getTestsForFlow(Flow flow) {
-		return model.getDeclarations().stream() //
-				.filter(d -> d instanceof Test) //
-				.map(test -> ((Test) test)) //
-				.filter(test -> test.getFlowReference().getRef().getName().equals(flow.getName())) //
-				.collect(Collectors.toList()); //
-	}
-	
-	public List<Loop> getLoops() {
-		return model.getDeclarations().stream() //
-			.filter(l -> l instanceof Loop) //
-			.map(loop -> ((Loop) loop)) //
-			.collect(Collectors.toList()); //
-	}
-	
-	public Loop getLoop(String loopId) {
-		Optional<Loop> loopOpt = model.getDeclarations().stream() //
-			.filter(l -> l instanceof Loop) //
-			.map(loop -> ((Loop) loop)) //
-			.filter(loop -> loop.getName().equals(loopId)) //
-			.findFirst(); //
-		
-		return loopOpt.isPresent() ? loopOpt.get() : null;
-	}
-	
-	public void deleteLoop(String name) {
-		Optional<Loop> loopOpt = model.getDeclarations().stream() //
-				.filter(d -> d instanceof Loop) //
-				.map(loop -> ((Loop) loop)) //
-				.filter(loop -> loop.getName().equals(name)) //
-				.findFirst(); //
-		
-		if(loopOpt.isPresent()) {
-			model.getDeclarations().remove(loopOpt.get());
-		}
-	}
-	
-	public void addBPMNDiagram(BPMNDiagram diagram) {
-		model.getDeclarations().add(diagram);
-	}
-
-	public void addVariable(Variable variable) {
-		model.getDeclarations().add(variable);
-	}
-
-	public void addFlowElement(FlowElement flowElement) {
-		model.getDeclarations().add(flowElement);
-	}
-
-	public void addFlow(Flow flow) {
-		model.getDeclarations().add(flow);
-	}
-
-	public void addTest(Test test) {
-		model.getDeclarations().add(test);
-	}
-	
-	public void addExternalServiceMock(ExternalServiceMock externalServiceMock) {
-		model.getDeclarations().add(externalServiceMock);
-	}
-	
-	public void addDelegateMock(DelegateMock delegateMock) {
-		model.getDeclarations().add(delegateMock);
-	}
-	
-	public void addExternalTopic(ExternalTopic externalTopic) {
-		model.getDeclarations().add(externalTopic);
-	}
-	
-	public void addLoop(Loop loop) {
-		model.getDeclarations().add(loop);
-	}
-	
-	public ExternalTopic getExternalTopic(String externalTopicName) {
-		Optional<ExternalTopic> findFirst = model.getDeclarations().stream() //
-			.filter(decl -> decl instanceof ExternalTopic) //
-			.map(externalTopic -> ((ExternalTopic) externalTopic)) //
-			.filter(externalTopic -> externalTopic.getName().equals(externalTopicName)) //
-			.findFirst();
-		
-		return findFirst.isPresent() ? findFirst.get() : null;
-	}
-
-	public void serialize() throws IOException {
-		String serialized = serializer.serialize(model);
-		serialized = serialized.replace("   ", " ");
-		
-		FileWriter myWriter = new FileWriter(dslFile);
-		myWriter.write(serialized);
-		myWriter.close();
-	}
-
-	public class ReferenceComparator implements Comparator<FlowElement> {
-
-		private List<String> ids;
-
-		public ReferenceComparator(List<String> ids) {
-			this.ids = ids;
-		}
-
-		@Override
-		public int compare(FlowElement left, FlowElement right) {
-			return Integer.compare(ids.indexOf(left.getName()), ids.indexOf(right.getName()));
-		}
-
-	}
-}
+package de.fhmuenster.masterthesis.serialization;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.xtext.serializer.impl.Serializer;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+import de.fhmuenster.masterthesis.TestgeneratorDSLRuntimeModule;
+import de.fhmuenster.masterthesis.TestgeneratorDSLStandaloneSetup;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram;
+import de.fhmuenster.masterthesis.testgeneratorDSL.BooleanVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.DelegateServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceMock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.IntVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Loop;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Mock;
+import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Model;
+import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement;
+import de.fhmuenster.masterthesis.testgeneratorDSL.StringVariable;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
+import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLFactory;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Variable;
+import de.fhmuenster.masterthesis.utils.TestgeneratorDSLUtils;
+
+@SuppressWarnings("restriction")
+public class TestgeneratorDSLSerializer {
+
+	private File dslFile;
+	private Model model;
+	private Serializer serializer;
+
+	public TestgeneratorDSLSerializer(String path) throws IOException {
+		dslFile = new File(path);
+
+		// Deserialization
+		new TestgeneratorDSLStandaloneSetup().createInjectorAndDoEMFRegistration();
+		createOrGetModel(path);
+
+		// Serialization
+		Injector injector = Guice.createInjector(new TestgeneratorDSLRuntimeModule());
+		serializer = injector.getInstance(Serializer.class);
+
+	}
+
+	private void createOrGetModel(String path) throws IOException {
+		ResourceSet rs = new ResourceSetImpl();
+		URI uri = URI.createFileURI(path);
+
+		if (!dslFile.exists()) {
+			String dslFileDirectory = dslFile.toPath().getParent().toString();
+			File dslFileDir = new File(dslFileDirectory);
+			dslFileDir.mkdirs();
+			dslFile.createNewFile();
+		}
+		
+		Resource resource = rs.getResource(uri, true);
+		if(resource.getContents().isEmpty()) {
+			model = TestgeneratorDSLObjectCreator.createModel();
+			resource.getContents().add(model);
+		} else {
+			model = (Model) resource.getContents().get(0);
+		}
+	}
+
+	public BPMNDiagram getBPMNDiagram(String id) {
+		Optional<BPMNDiagram> diagramOpt = model.getDeclarations().stream() //
+				.filter(decl -> decl instanceof BPMNDiagram) //
+				.map(decl -> ((BPMNDiagram) decl)) //
+				.filter(diagram -> diagram.getName().equals(id)) //
+				.findFirst(); //
+
+		return diagramOpt.isPresent() ? diagramOpt.get() : null;
+	}
+
+	public ExternalServiceTaskFlowElement getExternalServiceTaskFlowElement(String name) {
+		Optional<ExternalServiceTaskFlowElement> elementOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof ExternalServiceTaskFlowElement) //
+				.map(f -> ((ExternalServiceTaskFlowElement) f)) //
+				.filter(element -> element.getName().equals(name)) //
+				.findFirst(); //
+		
+		return elementOpt.isPresent() ? elementOpt.get() : null;
+	}
+	
+	public List<ExternalServiceTaskFlowElement> getExternalServiceTaskFlowElements() {
+		List<ExternalServiceTaskFlowElement> externalServiceTaskElements = model.getDeclarations().stream() //
+				.filter(d -> d instanceof ExternalServiceTaskFlowElement) //
+				.map(f -> ((ExternalServiceTaskFlowElement) f)) //
+				.collect(Collectors.toList()); //
+		
+		return externalServiceTaskElements;
+	}
+	
+	public DelegateServiceTaskFlowElement getDelegateServiceTaskFlowElement(String name) {
+		Optional<DelegateServiceTaskFlowElement> elementOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof DelegateServiceTaskFlowElement) //
+				.map(f -> ((DelegateServiceTaskFlowElement) f)) //
+				.filter(element -> element.getName().equals(name)) //
+				.findFirst(); //
+		
+		return elementOpt.isPresent() ? elementOpt.get() : null;
+	}
+	
+	public List<ServiceTaskFlowElement> getDelegateServiceTaskFlowElements() {
+		List<ServiceTaskFlowElement> delegateServiceTaskElements = model.getDeclarations().stream() //
+				.filter(d -> d instanceof DelegateServiceTaskFlowElement) //
+				.map(f -> ((ServiceTaskFlowElement) f)) //
+				.collect(Collectors.toList()); //
+		
+		return delegateServiceTaskElements;
+	}
+	
+	public List<FlowElement> getFlowElements() {
+		return model.getDeclarations().stream() //
+				.filter(decl -> decl instanceof FlowElement) //
+				.map(f -> ((FlowElement) f)) //
+				.collect(Collectors.toList()); //
+	}
+
+	public List<FlowElement> getFlowElements(List<String> ids) {
+		List<FlowElement> flowElements = model.getDeclarations().stream() //
+				.filter(decl -> decl instanceof FlowElement) //
+				.map(f -> ((FlowElement) f)) //
+				.filter(f -> ids.contains(f.getName())) //
+				.collect(Collectors.toList()); //
+
+		flowElements.sort(new ReferenceComparator(ids));
+
+		return flowElements;
+	}
+
+	public List<Flow> getFlows() {
+		return model.getDeclarations().stream() //
+				.filter(d -> d instanceof Flow) //
+				.map(f -> ((Flow) f)) //
+				.collect(Collectors.toList()); //
+	}
+	
+	public Flow getFlow(String name) {
+		Optional<Flow> flowOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof Flow) //
+				.map(f -> ((Flow) f)) //
+				.filter(flow -> flow.getName().equals(name)) //
+				.findFirst(); //
+		
+		return flowOpt.isPresent() ? flowOpt.get() : null;
+	}
+	
+	public List<Variable> getVariables() {
+		return model.getDeclarations().stream() //
+			.filter(d -> d instanceof Variable) //
+			.map(varDecl -> ((Variable) varDecl)) //
+			.collect(Collectors.toList()); //
+	}
+	
+	public List<VariableProposal<?>> getVariableProposals() {
+		List<VariableProposal<?>> variableProposals = new ArrayList<>();
+		
+		List<VariableProposal<String>> stringProposals = model.getDeclarations().stream() //
+			.filter(d -> d instanceof StringVariable) //
+			.map(varDecl -> ((StringVariable) varDecl)) //
+			.map(stringVar -> new VariableProposal<String>(stringVar.getName(), stringVar.getProposals(), String.class))
+			.collect(Collectors.toList());
+		
+		List<VariableProposal<Integer>> intProposals = model.getDeclarations().stream() //
+				.filter(d -> d instanceof IntVariable) //
+				.map(varDecl -> ((IntVariable) varDecl)) //
+				.map(intVar -> new VariableProposal<Integer>(intVar.getName(), intVar.getProposals(), Integer.class))
+				.collect(Collectors.toList());
+		
+		List<VariableProposal<Boolean>> booleanProposals = model.getDeclarations().stream() //
+				.filter(d -> d instanceof BooleanVariable) //
+				.map(varDecl -> ((BooleanVariable) varDecl)) //
+				.map(boolVar -> new VariableProposal<Boolean>(boolVar.getName(), TestgeneratorDSLUtils.mapDSLBoolean(boolVar.getProposals()), Boolean.class))
+				.collect(Collectors.toList());
+		
+		variableProposals.addAll(stringProposals);
+		variableProposals.addAll(intProposals);
+		variableProposals.addAll(booleanProposals);
+		return variableProposals;
+	}
+
+	public Mock getMock(String name) {
+		Optional<Mock> mockOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof Mock) //
+				.map(mock -> ((Mock) mock)) //
+				.filter(mock -> mock.getName().equals(name)) //
+				.findFirst(); //
+		
+		return mockOpt.isPresent() ? mockOpt.get() : null;
+	}
+	
+	public List<ExternalServiceMock> getExternalServiceMocks(ExternalServiceTaskFlowElement serviceTask) {
+		List<ExternalServiceMock> externalServiceMocks = model.getDeclarations().stream() //
+				.filter(d -> d instanceof ExternalServiceMock) //
+				.map(mock -> ((ExternalServiceMock) mock)) //
+				.filter(mock -> mock.getExternalTopic().equals(serviceTask.getExternalTopic())) //
+				.collect(Collectors.toList()); //
+		
+		return externalServiceMocks;
+	}
+	
+	public List<ExternalServiceMock> getExternalServiceMocks() {
+		List<ExternalServiceMock> externalServiceMocks = model.getDeclarations().stream() //
+				.filter(d -> d instanceof ExternalServiceMock) //
+				.map(mock -> ((ExternalServiceMock) mock)) //
+				.collect(Collectors.toList()); //
+		
+		return externalServiceMocks;
+	}
+	
+	public ExternalServiceMock getExternalServiceMock(String name) {
+		Optional<ExternalServiceMock> externalServiceMockOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof ExternalServiceMock) //
+				.map(mock -> ((ExternalServiceMock) mock)) //
+				.filter(mock -> mock.getName().equals(name)) //
+				.findFirst(); //
+		
+		return externalServiceMockOpt.isPresent() ? externalServiceMockOpt.get() : null;
+	}
+	
+	public List<DelegateMock> getDelegateMocks(DelegateServiceTaskFlowElement serviceTask) {
+		List<DelegateMock> delegateMocks = model.getDeclarations().stream() //
+				.filter(d -> d instanceof DelegateMock) //
+				.map(mock -> ((DelegateMock) mock)) //
+				.filter(mock -> mock.getServiceTaskReference().getRef().getName().equals(serviceTask.getName())) //
+				.collect(Collectors.toList()); //
+		
+		return delegateMocks;
+	}
+	
+	public List<DelegateMock> getDelegateMocks() {
+		List<DelegateMock> delegateMocks = model.getDeclarations().stream() //
+				.filter(d -> d instanceof DelegateMock) //
+				.map(mock -> ((DelegateMock) mock)) //
+				.collect(Collectors.toList()); //
+		
+		return delegateMocks;
+	}
+	
+	public DelegateMock getDelegateMock(String name) {
+		Optional<DelegateMock> delegateMockOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof DelegateMock) //
+				.map(mock -> ((DelegateMock) mock)) //
+				.filter(mock -> mock.getName().equals(name)) //
+				.findFirst(); //
+		
+		return delegateMockOpt.isPresent() ? delegateMockOpt.get() : null;
+	}
+	
+	public void deleteMock(String name) {
+		Optional<Mock> mockOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof Mock) //
+				.map(mock -> ((Mock) mock)) //
+				.filter(mock -> mock.getName().equals(name)) //
+				.findFirst(); //
+		
+		if(mockOpt.isPresent()) {
+			model.getDeclarations().remove(mockOpt.get());
+		}
+	}
+	
+	public boolean hasMockReferences(String mockRef) {
+		return model.getDeclarations().stream() //
+				.filter(d -> d instanceof Test) //
+				.map(test -> ((Test) test)) //
+				.filter(test -> containsMockReference(test.getMocks(), mockRef))
+				.findAny() //
+				.isPresent(); //
+	}
+	
+	public List<Test> getAndDeleteOldMockReferences(String oldMockRef) {
+		List<Test> mockRefTests = model.getDeclarations().stream() //
+			.filter(d -> d instanceof Test) //
+			.map(test -> ((Test) test)) //
+			.filter(test -> containsMockReference(test.getMocks(), oldMockRef))
+			.collect(Collectors.toList()); //
+		
+		mockRefTests.stream() //
+			.map(test -> test.getMocks()) //
+			.forEach(references -> references.removeIf(ref -> ref.getRef().getName().equals(oldMockRef))); //
+		
+		return mockRefTests;
+	}
+	
+	private boolean containsMockReference(EList<MockReference> mockReferences, String oldMockRef) {
+		return mockReferences.stream() //
+			.filter(ref -> ref.getRef().getName().equals(oldMockRef)) //
+			.findAny() //
+			.isPresent(); //
+	}
+	
+	public void addMockToTest(Test test, Mock mock) {
+		MockReference mockReference = TestgeneratorDSLFactory.eINSTANCE.createMockReference();
+		mockReference.setRef(mock);
+		
+		test.getMocks().add(mockReference);
+	}
+	
+	public Test getTest(String name) {
+		Optional<Test> testOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof Test) //
+				.map(test -> ((Test) test)) //
+				.filter(test -> test.getName().equals(name)) //
+				.findFirst(); //
+		
+		return testOpt.isPresent() ? testOpt.get() : null;
+	}
+	
+	public void deleteTest(String name) {
+		Optional<Test> testOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof Test) //
+				.map(test -> ((Test) test)) //
+				.filter(test -> test.getName().equals(name)) //
+				.findFirst(); //
+		
+		if(testOpt.isPresent()) {
+			model.getDeclarations().remove(testOpt.get());
+		}
+	}
+	
+	public Map<String, Long> getFlowTestCount() {
+		return model.getDeclarations().stream()
+			.filter(d -> d instanceof Test) //
+			.map(d -> ((Test) d).getFlowReference().getRef().getName()) //
+			.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
+	}
+	
+	public List<Test> getTestsForFlow(Flow flow) {
+		return model.getDeclarations().stream() //
+				.filter(d -> d instanceof Test) //
+				.map(test -> ((Test) test)) //
+				.filter(test -> test.getFlowReference().getRef().getName().equals(flow.getName())) //
+				.collect(Collectors.toList()); //
+	}
+	
+	public List<Loop> getLoops() {
+		return model.getDeclarations().stream() //
+			.filter(l -> l instanceof Loop) //
+			.map(loop -> ((Loop) loop)) //
+			.collect(Collectors.toList()); //
+	}
+	
+	public Loop getLoop(String loopId) {
+		Optional<Loop> loopOpt = model.getDeclarations().stream() //
+			.filter(l -> l instanceof Loop) //
+			.map(loop -> ((Loop) loop)) //
+			.filter(loop -> loop.getName().equals(loopId)) //
+			.findFirst(); //
+		
+		return loopOpt.isPresent() ? loopOpt.get() : null;
+	}
+	
+	public void deleteLoop(String name) {
+		Optional<Loop> loopOpt = model.getDeclarations().stream() //
+				.filter(d -> d instanceof Loop) //
+				.map(loop -> ((Loop) loop)) //
+				.filter(loop -> loop.getName().equals(name)) //
+				.findFirst(); //
+		
+		if(loopOpt.isPresent()) {
+			model.getDeclarations().remove(loopOpt.get());
+		}
+	}
+	
+	public void addBPMNDiagram(BPMNDiagram diagram) {
+		model.getDeclarations().add(diagram);
+	}
+
+	public void addVariable(Variable variable) {
+		model.getDeclarations().add(variable);
+	}
+
+	public void addFlowElement(FlowElement flowElement) {
+		model.getDeclarations().add(flowElement);
+	}
+
+	public void addFlow(Flow flow) {
+		model.getDeclarations().add(flow);
+	}
+
+	public void addTest(Test test) {
+		model.getDeclarations().add(test);
+	}
+	
+	public void addExternalServiceMock(ExternalServiceMock externalServiceMock) {
+		model.getDeclarations().add(externalServiceMock);
+	}
+	
+	public void addDelegateMock(DelegateMock delegateMock) {
+		model.getDeclarations().add(delegateMock);
+	}
+	
+	public void addExternalTopic(ExternalTopic externalTopic) {
+		model.getDeclarations().add(externalTopic);
+	}
+	
+	public void addLoop(Loop loop) {
+		model.getDeclarations().add(loop);
+	}
+	
+	public ExternalTopic getExternalTopic(String externalTopicName) {
+		Optional<ExternalTopic> findFirst = model.getDeclarations().stream() //
+			.filter(decl -> decl instanceof ExternalTopic) //
+			.map(externalTopic -> ((ExternalTopic) externalTopic)) //
+			.filter(externalTopic -> externalTopic.getName().equals(externalTopicName)) //
+			.findFirst();
+		
+		return findFirst.isPresent() ? findFirst.get() : null;
+	}
+
+	public void serialize() throws IOException {
+		String serialized = serializer.serialize(model);
+		serialized = serialized.replace("   ", " ");
+		
+		FileWriter myWriter = new FileWriter(dslFile);
+		myWriter.write(serialized);
+		myWriter.close();
+	}
+
+	public class ReferenceComparator implements Comparator<FlowElement> {
+
+		private List<String> ids;
+
+		public ReferenceComparator(List<String> ids) {
+			this.ids = ids;
+		}
+
+		@Override
+		public int compare(FlowElement left, FlowElement right) {
+			return Integer.compare(ids.indexOf(left.getName()), ids.indexOf(right.getName()));
+		}
+
+	}
+
+}